问题描述
在包级别 main
我有 2 个文件 hello.go
和 main.go
。
|- hello.go
|- main.go
这两个文件都在 package main
级别,但与其他包不同,我无法导入在 func
中的 hello
中定义的 func main
。 package main
可以只有 1 个文件吗?
// hello.go
package main
import "fmt"
func Hello() {
fmt.Println("hello world")
}
// main.go
package main
func main() {
Hello()
}
./main.go:4:2: undefined: Hello
解决方法
使这项工作正常的两种方法
-
开始构建。然后执行二进制
-
使用 go mod:
go mod init main
go mod tidy
go run main
看起来 build 可以将模块解析到当前目录。 否则,你必须告诉 go 模块在哪里
,在终端中,你应该使用
go run .
代替
go run main.go