GO语言包管理速查指南

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

猜你喜欢

转载自blog.csdn.net/a348752377/article/details/102830791
今日推荐