在Go命令行调用中,三个点"./ ..."是什么意思?

Kev*_*rke 101 go

如果您在Travis CI上运行Golang测试,它将使用三个点下载所有依赖项:

go get -d -v ./... && go build -v ./...
Run Code Online (Sandbox Code Playgroud)

什么./...表明或扩展到那里?我做过一些研究,但它似乎不是Unix惯例.

Kev*_*rke 107

从命令go help packages:

导入路径是一种模式,如果它包含一个或多个"..."通配符,每个通配符都可以匹配任何字符串,包括空字符串和包含斜杠的字符串.这样的模式扩展到GOPATH树中找到的所有包目录,其名称与模式匹配.作为一种特殊情况,x/...匹配x以及x的子目录.例如,net/...在其子目录中扩展为net和packages.

  • 很多时候我这样做是因为我最后会在同一个问题上搜索相同的问题,这是最容易找到它的地方. (7认同)
  • 所以它类似于一些shell实现的`**`通配符. (4认同)
  • 大声笑你回答了自己的问题.那就是凯文. (4认同)
  • 在概念上肯定类似于“**”,最酷的部分是它只是与“go”相关的文件,并且它在跨平台和 shell 中的工作方式相同。我对 Go 还很陌生,这让我很高兴 ^__^ (4认同)
  • 我认为只要信息“有用”即可回答自己的问题是完全可以的,并且[guideline](https://stackoverflow.com/help/self-answer)也鼓励这样做。 (3认同)

Emd*_*won 35

go [command] ./...
Run Code Online (Sandbox Code Playgroud)

这里./告诉从当前文件夹开始,...告诉递归下去.

例如:

go list ...
Run Code Online (Sandbox Code Playgroud)

在任何文件夹中列出所有包,包括标准库的包,首先是go工作空间中的外部库.