繁体   English   中英

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

[英]golang reference struct in same package in another file

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

目前我得到undefined: MyStructgo build lib/file_2.go 我可以运行go install没有错误,我应该忽略构建错误吗?

这些是我的文件:

lib/file_1.go

...
package lib
...
type MyStruct struct{
}
....

lib/file_2.go

...
package lib
...
{
m MyStruct
}
....

谢谢

这个命令对我有用

go run *.go

实际上,这将编译所有 go 文件并运行您的 main 函数。 所以这很好用

你要求 go 工具编译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 list
of source files specifying a single package.

您应该能够直接使用MyStruct ,因为它与其定义在同一个包中。

如果您有任何问题,有时创建lib/file_2.go之前进行go install会有所帮助(例如,对于像SublimeText + GoSublime这样的 IDE)。
这样, lib/file_1.go被编译并出现在GOPATH/pkglib/file_1.go定义对于lib/file_2.go可见,以便在编译期间使用。

您必须首先使用 build 命令编译多个文件。

go build

现在您可以看到使用给定名称或默认情况下的文件夹名称生成的构建文件。 然后运行二进制文件。

./binary_file_name

根据https://golang.org/doc/tutorial/getting-started ,您应该运行:

go run .

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM