go基本命令

  1. go build // 编译为可执行文件,保存在当前目录下
  2. go install // 编译为可执行文件,保存在GOPATH/bin目录下
  3. 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函数

image.png
package以递归的形式导入,init()相当于return语句回溯到上一级调用,一般用来初始化包内参数。

  • 导包的三种方法
    • 匿名导入

_ “learngo/init/lib2”
表示导入这个包,执行导入包中的init()但是不引用该包中的元素.

  • 包别名

lb2 “learngo/init/lib2”
可直接用lb2代替lib2的包名调用包中对外的函数

  • 嵌入式导入

. “learngo/init/lib2”
相当于lib2中的代码直接导入当前包,可直接使用lib2中的函数,无需前缀。多个嵌入式导入容易产生变量名重复错误。

参考资料

  1. 慕课网-ccmouse
  2. https://www.bilibili.com/video/av48861601 -李文周mooc