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

时间:2015-03-12 13:17:08

标签: go scope package

我有以下文件:

gopackage/main.go

package main

func main () {
  foo();
}

gopackage/otherfile.go

package main

import "fmt"

func foo() {
  fmt.Print("foo\n")
}

显然,foomain.go的引用并未解析为foootherfile.go的定义:

> go run main.go
# command-line-arguments
./main.go:4: undefined: foo

为什么不呢?我被告知同一目录中的所有文件都包含一个包,这是一个范围。

1 个答案:

答案 0 :(得分:3)

  

Compile and run Go program

     

用法:

go run [build flags] [-exec xprog] gofiles... [arguments...]
     

运行编译并运行包含命名Go源的主包   文件。 Go源文件被定义为以文字结尾的文件   "。去"后缀。

列出所有gofiles

go run main.go otherfile.go

或者,在Linux和其他类Unix系统上,*.go是目录中所有.go个文件的通配符,

go run *.go