猿问

另一个文件中同一包中的golang引用结构

如何MyStruct在同一package文件或文件夹中的另一个文件中引用?


目前我得到undefined: MyStruct的时候go build lib/file_2.go。我可以毫无错误地运行go install,我应该忽略构建错误吗?


这些是我的文件:


lib/file_1.go


...

package lib

...

type MyStruct struct{

}

....

lib/file_2.go


...

package lib

...

{

m MyStruct

}

....

谢谢


陪伴而非守候
浏览 389回答 3
3回答

森栏

这个命令对我有用go run *.go实际上,这将编译所有 go 文件并运行您的 main 函数。所以这很好用

哔哔one

您要求 go 工具进行 compile lib/file_1.go,您从未提到过lib/file_2.go它怎么知道它应该编译它?来自go help build:Build compiles the packages named by the import paths,along with their dependencies, but it does not install the results.If the arguments are a list of .go files, build treats them as a listof source files specifying a single package.

红糖糍粑

您应该可以MyStruct直接使用,因为它与其定义在同一个包中。如果您有任何问题,有时它可以帮助(像一个IDE SublimeText + GoSublime,例如)做go install 之前创建lib/file_2.go。这样,lib/file_1.go被编译并存在于 中GOPATH/pkg,lib/file_1.go定义可见lib/file_2.go以供在编译期间使用。
随时随地看视频慕课网APP

相关分类

Go
我要回答