go语言包与包引用

go语言中包(package)与java中的包(package)非常类似,都是组织代码的方式,而且都和磁盘上的目录结构存在对应关系。

 

go语言中,包名一般为go代码所在的目录名,但是与java不同的是,go语言中包名只有一级,而在java中包名是以点分割的多级目录组合的。

 

go语言中,引用包时需要以GOPATH/src目录为相对根目录,依次输入下面的各级目录名。

如:环境变量GOPATH = ~/go

包hello下有hello.go,包所在的磁盘路径为:

~/go/src/golang_everyday/hello

也就是说,hello.go的路径为:

~/go/src/golang_everyday/hello/hello.go

 

则在其它文件中引用该go文件时,代码应为:

import "golang_everyday/hello"

如果存在多个GOPATH,编译时,go会挨着去每个GOPATH的src下找,直到找到为止。

 

main是一个特殊的package名字,类似Java的main函数,GO的可执行程序必须在main package下,main包所在的文件夹一般都不叫main。

 

在同一个package里,多个文件被go编译器看作是一个文件一样,因此,这多个文件中不能出现相同的全局变量和函数,一个例外是init函数;而同一个package的不同文件可以直接引用相互之间的数据。

posted @ 2015-03-03 08:59  klain  阅读(8425)  评论(0编辑  收藏  举报