import与package的关系

XinhongWu · · 746 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

package与import的关系 ### import后面的路径该怎么写? Answer:import后面的路径是相对的路径,它是相对于GOPATH/src后的路径名称。 一般意义上在代码设计时,我们习惯将一个目录下的文件认为是一个包,例如: ``` public/ ├── command.go ├── config.go ├── const.go ├── job.go ├── network.go ├── process.go ├── resource.go └── upgrade.go ``` 则可以把public目录下的源代码编译成1个包。 假设public的绝对路径是:`/root/go/src/operation_center/public`,$GOPATH为`/root/go`,则如果需要引用public下面的包,则import需要写作: `import "operation_center/public"` ### package命名与目录的关系 package声明包名与其所在的目录,并不要求一致。例如,在上面的public目录下,其下面的go文件的源代码中,例如process.go文件,声明所在的package为: `package common` 且其对外提供了一个接口: ``` package common import "time" func Today() time.Time { now := time.Now() return time.Date(now.Year(), now.Month(), now.Day(), 0, 0, 0, 0, time.Local) } ``` 使用时如下: ``` package main import ( "fmt" "operation_center/public" ) func main(){     fmt.Println(common.Today()) } ``` ### 是否会生成静态文件或者可执行文件 go build:在源码目录下执行时,只会生成可执行文件,不会生成库文件。 go get/ go install:会生成库文件或者可执行文件。 因为go get的本质上也是执行了go install,因此可以认为: `执行了install操作,可以生成可执行文件或者静态库文件`

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

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

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