我的源文件树是这样的:
/src
/pkg
/foo
foo.go
foo_test.go
Inside foo.go
:
package foo
func bar(n int) {
...
}
inside foo_test.go
:
package foo
func testBar(t *testing.T) {
bar(10)
...
}
我的问题是:
- 包名和目录名、源文件名有关系吗?
- 如果一个包只有一个源文件,是否需要将其放在一个目录中?
- 我应该放
foo.go
and foo_test.go
在同一个包中?
- In the
foo_test.go
,因为它位于同一个包中foo.go
,我没有导入foo
。但是当我编译时foo_test.go
6g,它说bar() is undefined
。我应该怎么办?
1 - 语言规范如下:
共享相同 PackageName 的一组文件形成包的实现。实现可能要求包的所有源文件位于同一目录中。
如此看来,文件/目录的命名没有任何要求,但将形成一个包的所有文件放在一个目录中会更安全。
2 - 显然该文件必须位于某个目录中。我猜你的意思是“我应该把它放在子目录中吗src
?”在我看来,根据上面的引用,您可以将所有文件放在src
如果你真的想直接的话。
3 - Yes.
4 - Use go test http://golang.org/cmd/go/#Test_packages
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)