- 常见范式
import "fmt"
如果是多个package(常见)
则import( "fmt" "os" )
- 怎么调用包呢?
一般来说,遵循约定,比方说包路径的为"crypto/rand"
的包一般调用为rand.xx
但是注意的是,最终我们还是要根据源文件的package信息来决定我们的调用,比如对于import "github.com/json-iterator/go"
, 看起来我们应该用go.xx调用,但是其源文件声明是package jsoniter
,所以我们还是要结合具体情况判断 - 如果出现重复的包名怎么办?
这种情况并不少见,我们可以通过重命名的方式来解决,如下述代码import( "crypto/rand" mrand "math/rand" )
- 有时候我们看见包前面有_,如
_ "image/png"
,这是用做什么的呢?
有些时候,我们导入某个包不是为了调用,而是希望1.对包中变量初始化表达式求值 2.执行包中的init()
函数
但是我们知道go中不允许导入不使用的包,因此引入_来解决这个问题 - 为什么有些时候我们从网上clone下来的代码不能跑起来,提示说包找不到?
具体情况具体分析,不过其实go build
构建的时候会从两个地方寻找,一个是$GOPATH/src
一个是$GOROOT/src
,我们一般不会更改$GOROOT
,但是我们可以更改$GOPATH
来更改工作空间,或者说我们可以把网络代码移到原先的GOPATH指定的地方,我们可以用go env
查询相关的信息
注意,通过go get xx
下载的包会存储在$GOPATH/src
下 go get gopl.io/...
和go get gopl.io
有什么区别?
前者不仅仅下载gopl.io
还会下载子树以及仓库
GO语言包管理速查指南
猜你喜欢
转载自blog.csdn.net/a348752377/article/details/102830791
今日推荐
周排行