go get ... // -u
go install ...
go run xxx.go
go build xxx.go
./xxx
go test xxx // -cpu, -count, -parallel, -v, -cover, -bench, -benchmem, -cpuprofile, -trace
go env
go env GOCACHE
go clean
go clean -cache
go clean -testcache
go tool pprof prof cpu.prof
go-torch xxx
go tool trace
Constants: truefalseiotanilTypes: intint8int16int32int64uintuint8uint16uint32uint64uintptrfloat32float64complex128complex64boolbyterunestringerrorFunctions: make len cap new append copy close delete complex real imag panic recover
Visible
在 function 内声明,则在 function 内可见。
在包级别声明,且小写字母开头,则同一个包的所有文件可见。
在包级别声明,且大写字母开头,表示 exported,可被别的包访问。
Declarations
packageimportvar const typefunc
Variables
// 标准格式var name type= expression// type 和 expression 可以省略其中一个。// 若省略 type,则 type 由 expression 决定;// 若省略 expression,则初始值为 zero value。
&x // address of x*p // 指针 p 指向的变量的值x :=1p :=&x // type of p is *int*p =2// x = 2// 指针相等 p1 == p2:都为 nil 或指向同一变量// 返回函数中局部变量的地址是安全的,不会被回收var p =f()funcf() *int { v :=1return&v}
new Function
使用较少。
// new(T) 创建一个 T 类型的变量,初始化为 T 类型的零值,返回变量地址p :=new(int) // type of p is *int