import "x/y/z" //实际上是去找name.a //自己把这个想象成路径
fmt.printf; //把fmt想象成类(对象)
go build 包名默认就是目录名。生成的a文件也是目录名。
[delphi@z220 test]$ tree .
.
├── inc
│ └── func.go
└── test.go
//inc/func.go 实际上会生成 test/inc.a文件
package pkgfunc
import "fmt"
func MyFunc() {
fmt.Println("Myfunc")
}
//test.go
package main
import "test/inc"
func main() {
pkgfunc.MyFunc()
}
go run test.go
先找到test/inc.a文件,然后使用里面的pkgfunc包(名空间)里的MyFunc函数
一个目录下有多个package就会编译失败。
iota 遇上下一个const自动变成0,
当赋值语句跟上一个相同,可省略不写iota
例如:
const (
monday = iota
trus
s
)
string 以unicode遍历的时候,每个字符类型是rune
go支持2种字符类型,一个是byte(uint8)代表utf8,另一个是rune代表单个unicode字符。
`` 可以写多行的原始字符
go中的数组是值类型,所有的值类型在赋值和作为参数传递都将产生一次复制动作。
因为go/build将会忽略所有以下划线或者点开头的源文件
有疑问加站长微信联系(非本文作者)