社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
#go setting
export GOROOT=/usr/local/go
export GOPATH=~/golib:~/goproject
export GOBIN=~/gobin
export PATH=$PATH:$GOROOT/bin:$GOBIN
然后执行配置文件,使配置生效即可
然后就可以在任意目录结构下面使用go了 -_-
/home/hypermind/golib:
src/
pkg/
bin/
命令源码文件:声明自己属于main代码包,包含无参数声明和结果声明的main函数,被安装后,相应的可执行文
件会被存放到GOBIN指向的目录或<当前工作区目录>/bin下面,命令源码文件是Go程序的入口,
但不建议把程序都写在一个文件中,统一代码包中强烈不建议直接包含多个命令源码文件
库源码文件:不具备命令源码文件的两个特征的源码文件,被安装后,相应的归档文件会被存放到<当前工作区目
录>/pkg/<平台相关目录>下
测试源码文件:不具备命令源码文件的两个特征的源码文件,名称以_test.go为后缀,其中至少有一个函数的名
称以Test或者Benchmark为前缀,该函数如果接受*testing.T参数则为功能测试函数,如果接受
一个*testting.B的指针参数则为基准测试函数(性能测试函数)。
代码包
1.作用:编译和归档Go程序的最基本单位,代码划分,集结和依赖的有效组织形式,也是权限控制的辅助手段。
2.规则:一个代码包实际上就是一个由导入路径代表的目录,导入路径即<工作区目录>/src或/pkg/<平台相关目
录>之下的某段子路径。
3.声明:每个源码文件必须声明其所属的代码包,同一个代码包中的所有源码文件声明的代码包应该是相同的。
4.代码包声明和导入路径的区别:代码包声明语句中的包名称应该是该代码包的导入路径的最右子路径,例如
代码包:hypermind.cn/pkgtool 源码文件声明包为 package pkgtool
小技巧:子代码包可以直接迁移
5.导入:代码包导入语句中使用的包名称应该与其导入路径一致,例如:
flag import(
fmt => "flag"
strings "fmt"
"strings"
)
代码包导入方法: 1.import str "strings" //起别名
2.import . "strings" //本地化导入 使用不需要使用前缀
3.import _ "strings" //仅仅执行代码包中的初始化函数
6.初始化:1.代码包初始化函数即:无参数声明和结果声明的init()函数
2.init()函数可以被声明在任何文件中,且可以有多个
3.init()函数执行的时机
*单一代码包内=>对所有全局变量进行求值=>执行所有init()函数,同一代码包中所有的init()函
数执行顺序是不确定的。
*不同代码代码包内=>执行被导入的代码包中的init()函数=>执行导入它的那个代码包的init()函
数,例如导入顺序为A->B->C,则执行顺序为C->B->A。同一级别的代码包init()函数无序,
比如A导入B和C,则在执行时无法确定B与C的init()函数谁先执行。
*所有涉及到的代码包,也就是他们的init()函数都在Go程序的main()函数之前执行,所有的
init()函数去重执行,也就是只会执行一次。
注:所有知识点均采用imooc.com郝林大佬的免费视频中,赠人玫瑰,手有余乡,感兴趣的小伙伴可以去看一下。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!