go语言包与包引用
baiyuxiong · · 19309 次点击 · · 开始浏览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的不同文件可以直接引用相互之间的数据。
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
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的不同文件可以直接引用相互之间的数据。