如何解决什么是 $GOPATH[i] 和 $GOPATH[d]?
Go Modules Reference 的A section 描述了最小模块兼容性的一些规则。本节中有一个条件列表,其中两个如下所示:
- 不存在
mc_hoops_ex <- function(trials) { prob_pos <- c(0.148,0.544,0.308,0.256) prob_2pm <- 0.524 prob_3pm <- 0.378 prob_ftm <- 0.761 prob_orb <- 0.319 a <- 1 pts_ct <- 0 while (a <= trials) { pos_outcome <- sample(c(1:4),1,prob = prob_pos) if(pos_outcome == 2) { pos_end <- 0 while (pos_end < 1) { shot_prob <- runif(1) if(shot_prob <= prob_2pm) { pts_ct <- pts_ct + 2 pos_end <- 1 } else { orb_prob <- runif(1) if(orb_prob >= prob_orb) pos_end <- 1 } } } # Removed the closing brace here if(pos_outcome == 3) { pos_end <- 0 while (pos_end < 1) { shot_prob <- runif(1) if(shot_prob <= prob_3pm) { pts_ct <- pts_ct + 3 pos_end <- 1 } else { orb_prob <- runif(1) if(orb_prob >= prob_orb) pos_end <- 1 } } } if(pos_outcome == 4) { pos_end <- 0 while (pos_end < 1) { shot_prob <- runif(1) if(shot_prob <= prob_ftm) { pts_ct <- pts_ct + 1 pos_end <- 1 } else { orb_prob <- runif(1) if(orb_prob >= prob_orb) pos_end <- 1 } } } a <- a + 1 } # Added a closing brace here instead print(pts_ct / trials) print((pts_ct / trials) * 66.3) }
目录(对于任何根$GOPATH[i]/src/$modpath/$vn/$suffix
), - 文件
$GOPATH[i]
存在(对于某些根$GOPATH[d]/src/$modpath/go.mod
)并将模块路径声明为$GOPATH[d]
,
在这种情况下,$modpath/$vn
和 $GOPATH[i]
是什么? (假设我们知道 $GOPATH[d]
是什么。)
解决方法
如 go
命令的文档所述:
GOPATH 环境变量列出了查找 Go 代码的位置。在 Unix 上,该值是一个以冒号分隔的字符串。在 Windows 上,该值是以分号分隔的字符串。在计划 9 中,该值是一个列表。
如果未设置环境变量,则 GOPATH 默认为用户主目录中名为“go”的子目录(Unix 上为 $HOME/go,Windows 上为 %USERPROFILE%\go),除非该目录包含 Go 发行版。运行“go env GOPATH”查看当前的GOPATH。
因此,您引用的语法 $GOPATH[i]
仅用于描述 GOPATH 中的项目,正如我们所见,它可以是一个列表,而不仅仅是对单个路径的引用。
假设我的 Linux 机器上有以下 GOPATH
:/home/me/go:/gofaster
,并且我正在 /home/me/go/src/example.com/testing
中开展一个项目。
最小模块兼容性规则会按顺序说,即。为了解决我的依赖项 example.com/utils/v2
,Go 会检查:
- 我在
/home/me/go/src/example.com/testing/vendor/example.com/utils/v2
(即供应商目录)中没有包 - 我在
/home/me/go/src/example.com/utils/v2
和/gofaster/src/example.com/utils/v2
中都没有包(即检查两个 gopath)。 - 我有一个包在
/home/me/go/src/example.com/utils
或/gofaster/src/example.com/utils
中的一个(注意缺少 v2)。
如果我在其中任何一个目录中有一个包,那么它用于解决依赖关系。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。