golang undefined func

不同的.go文件数据同一个包:

.
├── lib.go
└── main.go

lib.go下有一个Test1函数:

 package main

 import "fmt"

 func Test1() {
     fmt.Println("lib.go Test1")
 }

main.go如下:

package main  
import(  
    "fmt"
)
func main() {  
    Test1()
}

如果想不编译直接运行,即执行:

go run main.go  

会报错:

# command-line-arguments
./main.go:12: undefined: Test1

原因是go run main.go,只会编译执行main.go文件,不会编译lib.go,所以lib.go中的函数没有编译到main.go中。

参考