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

时间:2014-12-18 14:41:35

标签: go

main.go

LIB / file_1.go

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

如何参考" MyStruct"在同一个包/文件夹中的另一个文件中?

我在构建lib / file_2.go时未定义:MyStruct。我可以运行go install而没有错误,我应该忽略构建错误吗?

LIB / file_2.go

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

由于

5 个答案:

答案 0 :(得分:9)

此命令适用于我

isEmpty

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

答案 1 :(得分:5)

你要求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.

答案 2 :(得分:3)

您应该可以直接使用MyStruct,因为它与其定义位于同一个包中。

如果您有任何问题,有时可以帮助(例如,对于像SublimeText + GoSublime这样的IDE)在创建之前执行go install lib/file_2.go
这样,lib/file_1.go就会被编译并显示在GOPATH/pkg中,其lib/file_1.go个定义可供lib/file_2.go在编译时使用。

答案 3 :(得分:0)

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

go build

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

./binary_file_name

答案 4 :(得分:0)

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

go run .