Alomerry Wu @ alomerry.com

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

感谢以下文章的帮助

 
 comment..
你认为这篇文章怎么样?
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v3.0.1
Theme by antfu
2018 - Present © Alomerry Wu