我想我错过了文档中的某些内容。您能给我指出正确的文档吗?如果还有其他问题,请告诉我这是什么。
基本上,我创建了一个名为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()
}
答案 0 :(得分:4)
该语言未保留软件包名称documentation
,但是构建工具会排除具有软件包名称documentation
的文件。
这是go/build Import function的文档:
在包含该软件包的目录中,.go,.c,.h和.s文件被视为该软件包的一部分,除了:
软件包文档中的
- .go文件
- 以_或。开头的文件。 (可能是编辑器的临时文件)
- 上下文不满足构建约束的文件
选择其他软件包名称。