无法将软件包命名为“文档”

时间:2020-11-02 23:34:32

标签: go

我想我错过了文档中的某些内容。您能给我指出正确的文档吗?如果还有其他问题,请告诉我这是什么。

基本上,我创建了一个名为foo的目录。在foo内部,创建了另一个子目录documentation。在main.go中,我尝试调用一个函数 SaySomething`,但失败了,并返回了main.go:3:8: build constraints exclude all Go files in /root/foo/documentation。然后我将documentation更改为documentationFoo,一切正常。

“文档”之类的感觉在Go中是一个保留字,也许我只是在这里遗漏了一些明显的内容。请帮我找出这是什么。

root@personal:~/foo# go run main.go
main.go:3:8: build constraints exclude all Go files in /root/foo/documentation
root@personal:~/foo# vi main.go
root@personal:~/foo# mv documentation documentationFoo
root@personal:~/foo# vi documentationFoo/documentation.go
root@personal:~/foo# go run main.go
foo
root@personal:~/foo# git diff .
diff --git a/documentation/documentation.go b/documentation/documentation.go
deleted file mode 100644
index 3c325c6..0000000
--- a/documentation/documentation.go
+++ /dev/null
@@ -1,7 +0,0 @@
-package documentation
-
-import "fmt"
-
-func SaySomething() {
-       fmt.Println("foo")
-}
diff --git a/main.go b/main.go
index 3e57e59..9b76d75 100644
--- a/main.go
+++ b/main.go
@@ -1,7 +1,7 @@
 package main

-import "./documentation"
+import "./documentationFoo"

 func main() {
-       documentation.SaySomething()
+       documentationFoo.SaySomething()
 }

1 个答案:

答案 0 :(得分:4)

该语言未保留软件包名称documentation,但是构建工具会排除具有软件包名称documentation的文件。

这是go/build Import function的文档:

在包含该软件包的目录中,.go,.c,.h和.s文件被视为该软件包的一部分,除了:

    软件包文档中的
  • .go文件
  • 以_或。开头的文件。 (可能是编辑器的临时文件)
  • 上下文不满足构建约束的文件

选择其他软件包名称。