我希望了解如何在逻辑上将Go包中的代码拆分为多个文件,最重要的是,在同一个包的另一个文件中使用该拆分/分离文件所需的语法。
我已经用这种形式创建了一个go项目。
-test
-bin
-pkg
-src
-main
main.go
test.go并试图运行go build main和go build main.go test.go,但我始终有一个错误。
test.go只包含以下代码
package main
import "fmt"
func do(b string) {
fmt.Println(b)
}我希望能够在do("x")中调用main.go。现在,main.go中的所有内容都是
package main
func main() {
test.do("x")
}我不知道该怎么做才能让这件事奏效。许多答案似乎都建议将test.go移到目录"test“中。我希望Go不要求我为我编写的每一段代码创建一个目录,但也许我会“与系统作斗争”。许多答案告诉我到一个网站,告诉我要建立上面的目录结构,并使用go install编译我的二进制文件,但这是行不通的。
我只想知道如何使用包/x.go中的函数/y.go,即使它们在同一个包中。必须有一个方法来做到这一点,否则我将有一堆不必要的软件包或难以理解单块文件。
我知道有许多类似的问题,但在我的搜索中,我还未能在同一个包中的两个文件中找到代码的实际示例。
发布于 2014-08-29 00:45:40
如果test.go位于同一个目录中,则必须位于同一个包中。因此,对于这两个文件,该包都是main,并且位于您只需调用do("x")的同一个包中。
此外,您可以像这样构建整个包,而无需指定单个文件。
export GOPATH="<path to>/test"
go build main发布于 2014-08-29 00:44:15
只需使用:
do而不是:
test.dohttps://stackoverflow.com/questions/25560040
复制相似问题