我有以下文件:
gopackage/main.go
:
package main
func main () {
foo();
}
gopackage/otherfile.go
:
package main
import "fmt"
func foo() {
fmt.Print("foo\n")
}
显然,foo
对main.go
的引用并未解析为foo
中otherfile.go
的定义:
> go run main.go
# command-line-arguments
./main.go:4: undefined: foo
为什么不呢?我被告知同一目录中的所有文件都包含一个包,这是一个范围。
答案 0 :(得分:3)
用法:
go run [build flags] [-exec xprog] gofiles... [arguments...]
运行编译并运行包含命名Go源的主包 文件。 Go源文件被定义为以文字结尾的文件 "。去"后缀。
列出所有gofiles
,
go run main.go otherfile.go
或者,在Linux和其他类Unix系统上,*.go
是目录中所有.go
个文件的通配符,
go run *.go