如何从 Go 程序中的另一个文件导入定义



我有以下文件:

gopackage/main.go

package main
func main () {
  foo();
}

gopackage/otherfile.go

package main
import "fmt"
func foo() {
  fmt.Print("foon")
}

显然,从main.go中提到foo并没有解决otherfile.gofoo的定义:

> 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

最新更新