Go语言中init 函数、变量、常量的执行顺序

2024-05-09  本文已影响0人  左诗右码

init 函数、变量、常量的执行顺序

init函数

包导入路径优先级

如果使用 govendor

  1. 先从项目根目录的 vendor 目录下查找
  2. 然后从 $GOROOT/src 目录下查找
  3. 然后从 $GOPATH/src 目录下查找
  4. 都找不到时,报错

如果使用 go modules

  1. 如果导入的包有域名,则都会在 $GOPATH/pkg/mod 下查找,找不到就去域名对应的网站下寻找,找不到或者找到的不是一个包,则报错
  2. 如果导入的包没有域名,比如 fmt 包,则就去 $GOROOT 下找
  3. 如果项目根目录下存在 vendor 目录,则不管导入的包有没有域名,都只会在 vendor 目录中查找

通常 vendor 目录是通过执行 go mod vendor 命令生成的。

上一篇 下一篇

猜你喜欢

热点阅读