go基本命令
go build // 编译为可执行文件,保存在当前目录下
go install // 编译为可执行文件,保存在GOPATH/bin目录下
go run filename.go // 编译为一个临时文件然后执行,不会留下可执行文件不能用这种方式运行package,package需要先build后再run
go build
go build命令是在当前目录编译生成可执行文件,保存在当前目录下。
注意:go build 指令会调用所有引用包的源码进行重新编译。
go install
执行 go install 命令会完成类似 go build 的功能 ,但go install 命令执行生成的可执行文件是在【$GOPATH/bin】目录中
go get
该命令可以理解为两个操作 git clone + go install , 执行会将远程代码clone 到【$GOPATH/src】 目录中
go run
编译为一个临时文件然后执行,不会留下可执行文件不能用这种方式运行package,package需要先build后再run
代码格式化: go fmt
Go语言中代码有标准的风格。不按照此格式的代码将不能编译通过。
为了减少浪费在排版上的时间,go工具集中提供了一个gofmt命令它可以帮你格式化你写好的代码文件,只需要在写完之后执行go fmt <文件名>.go ,代码就会被修改成了标准格式。
包管理
每个go程序都由包构成,一般以包为单位进行运行,一个包中只能有一个main函数。
- init函数
package以递归的形式导入,init()相当于return语句回溯到上一级调用,一般用来初始化包内参数。
- 导包的三种方法
- 匿名导入
_ “learngo/init/lib2”
表示导入这个包,执行导入包中的init()但是不引用该包中的元素.
- 包别名
lb2 “learngo/init/lib2”
可直接用lb2代替lib2的包名调用包中对外的函数
- 嵌入式导入
. “learngo/init/lib2”
相当于lib2中的代码直接导入当前包,可直接使用lib2中的函数,无需前缀。多个嵌入式导入容易产生变量名重复错误。