Дерево исходных файлов выглядит следующим образом:
/src
/pkg
/foo
foo.go
foo_test.go
Внутри foo.go:
package foo
func bar(n int) {
...
}
внутри foo_test.go:
package foo
func testBar(t *testing.T) {
bar(10)
...
}
Мои вопросы:
- Связано ли имя пакета с именем каталога, именем исходного файла?
- Если для пакета есть только один исходный файл, нужно ли его поместить в каталог?
- Должен ли я помещать foo.go и foo_test.go в тот же пакет?
- В foo_test.go, так как он в том же пакете, что и foo.go, я не импортировал foo. Но когда я компилирую foo_test.go с 6g, он говорит, что bar() - undefined. Что мне делать?