go语言包与包引用

baiyuxiong · · 18567 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

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的不同文件可以直接引用相互之间的数据。


有疑问加站长微信联系(非本文作者)

本文来自:博客园

感谢作者:baiyuxiong

查看原文:go语言包与包引用

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

18567 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传