我有以下文件:
gopackage/main.go
:
package main
func main () {
foo();
}
gopackage/otherfile.go
:
package main
import "fmt"
func foo() {
fmt.Print("foon")
}
显然,从main.go
中提到foo
并没有解决otherfile.go
中foo
的定义:
> go run main.go
# command-line-arguments
./main.go:4: undefined: foo
为什么不呢?有人告诉我,同一目录中的所有文件都包含一个包,这是一个范围。
编译并运行 Go 程序
用法:
运行go run [build flags] [-exec xprog] gofiles... [arguments...]
编译并运行包含命名 Go 源代码的主包 文件。Go 源文件定义为以文字结尾的文件 ".go"后缀。
列出所有gofiles
,
go run main.go otherfile.go
或者,在 Linux 和其他类 Unix 系统上,*.go
是目录中所有.go
文件的通配符,
go run *.go