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
}
....
由于
答案 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 .