package语句后面注释的import语句的作用是什么?

chm*_*ike 5 go

有些包在包语句之后有一个带注释的导入语句。这里有一个例子。

\n
. . .\npackage truetype // import "github.com/golang/freetype/truetype"\n. . .\n\n
Run Code Online (Sandbox Code Playgroud)\n

它似乎出现在模块内的包上。并非该包的所有文件都有此注释。

\n

此评论的目的是什么?为什么它在那里?

\n

我在 go 规范中没有\xe2\x80\x99 找到任何关于此的内容。

\n

Eli*_*sky 4

这适用于自定义导入路径。

请参阅导入路径检查文档,以及此 SO 答案

如果包语句后紧跟(在下一个换行符之前)以下两种形式之一的注释,则称其具有“导入注释”:

package math // import "path"
package math /* import "path" */
Run Code Online (Sandbox Code Playgroud)

go 命令将拒绝安装带有导入注释的包,除非该包被该导入路径引用。通过这种方式,导入注释可以让包作者确保使用自定义导入路径,而不是底层代码托管站点的直接路径。

  • 补充一点可能会很有用:随着 go 模块的使用,它已经过时了。 (4认同)