go语言杂记1
1.配置环境变量
- 对于Linux和Mac用户,mkdir /data/go_path
- vim ~/.bashrc加入以下几行
export GOROOT=/usr/local/go ($GOROOT和$GOPATH这两个路径完全可以自定义)
export GOPATH=/data/go_path
export GO111MODULE=on
export GOPROXY=https://goproxy.cn
export PATH=$PATH:$GOROOT/bin::$GOPATH/bin
- source ~/.bashrc 使环境变量生效,使用“go env”命令查看go相关的环境变量
2.环境变量含义
- GOROOT是go的安装目录,go原生的工具在该目录下(自带)
- GOPATH通常存放自己开发的代码或第三方依赖库
- GO111MODULE=on go会忽略GOPATH和vendor文件夹,只根据go.mod下载依赖。从go1.16开始其默认值为on
- GOPROXY:下载依赖库时走哪个镜像代理,可以公司内部自建镜像
- PATH下的二进制文件可以在任意目录下直接运行
- 在$GOPATH目录建3个子目录:src、bin、pkg
3.关于go mod init
golang 学习(二十五)go mod以及自定义包package的用法和init()方法_99号的博客-CSDN博客
4.iota
const ( a = iota // 0 b // 1 c // 2 d // 3 )
const ( a = iota // 0 b // 1 _ // 2 d // 3 )
const ( a = iota // 0 b = 30 c = iota // 2 d // 3 )
const ( _ = iota // iota=0 KB = 1 << (10*iota) // iota=1 MB = 1 << (10*iota) // iota=2 GB = 1 << (10*iota) // iota=3 )
const ( a, b = iota + 1, iota + 2 // 1, 2 iota=0 c, d // 2, 3 iota=1 e, f // 3, 4 iota=2 )
5.字面量
- 字面量:没有出现变量名,直接出现了值。基础类型的字面量相当于是常量
fmt.Printf("%v\n", .4i) //虚数字面量0.4i fmt.Printf("%t\n", '\u4f17' == '众') //Unicode和rune字面量 fmt.Printf("Hello\nWorld\n") //字符串字面量
- 不同类型的字面量可以进行比较,但是一旦被赋值给变量后就不能比较了。例:
// 字面量直接比较(√) fmt.Printf("%t\n", 04 == 4.00) //比较整形字面量和浮点型字面量 // 赋值给变量后比较(×) var a int = 04 var b float = 4.00 fmt.Printf("%t\n", a == b)
6.输出rune型变量
- 直接按字符输出
var r rune //type rune = int32 r = '众' fmt.Printf("%c\n", r)
- 转换为字符串变量输出
var r rune r = '众' fmt.Printf("%s\n", string(r))
- rune支持所有字符,byte只支持ASCII码
7.全局变量要用var或者const声明,不能用:=
8.想对包进行注释,可单独开一个doc.go文件专门进行注释,避免出现一个包里的多个文件声明包时多次注释发生冲突
例(vp包):除了注释内容,其他代码程序都不会有
/*doc.go文件*/: //注释1 // //注释2 package vp
9.go doc 命令
go自带的命令(entrance_class/util)
格式:go doc 包名
作用:显示包的引用方式(例:import "fmt"),包里各个文件的注释,包里可导出变量、函数等(大写声明的)
10.godoc
- godoc可以为项目代码导出网页版的注释文档
- 需要先安装 go get golang.org/x/tools/cmd/godoc
- 启动http:godoc -http=:6060(指定的端口号,可自己指定任意符合规定的端口号)
- 用浏览器访问:http://127.0.0.1:6060/pkg/要查看 包 或者 包下文件 的路径(例:fmt、go-course/entrance_class)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!