https://go.dev/ref/spec#Source_file_organizationhttps://go.dev/ref/spec#Statementhttps://github.com/golang-design
本系列基于 Golang 1.20.3
Golang 笔记 #
源码面前,了无秘密
内联 #
函数 #
IMPORTANT
函数参数皆是值拷贝,只是区别是拷贝目标对象还是拷贝指针,函数调用前就会为形参和返回值分配内存空间,并将实参拷贝到形参中
逃逸分析 #
- 匿名函数
defer #
避免在循环中 defer 可能会造成生命周期变长,内存占用增加
func main() {
for i := 0; i < 100; i++ {
file, _ := os.Open(fmt.Sprintf("%v.txt", i))
defer file.Close()
// Do something
}
}
由于 defer 在上例中循环结束后才执行,所以在所有循环结束前都不会关闭任何文件流
Context 接口 #
map #
GVM 安装 Golang #
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
need bison gcc make
gvm install go1.22.2 -B
gvm use go1.22.2 --default
[gvm](GitHub - moovweb/gvm: Go Version Manager)
go install #
http://c.biancheng.net/view/122.html
Reference #
感谢以下文章的帮助