无法在另一个包 main func main 中导入包 main 的 func A()有 2 个包 main

问题描述

在包级别 main 我有 2 个文件 hello.gomain.go

|- hello.go
|- main.go

这两个文件都在 package main 级别,但与其他包不同,我无法导入在 func 中的 hello 中定义的 func mainpackage 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

解决方法

使这项工作正常的两种方法

  1. 开始构建。然后执行二进制

  2. 使用 go mod:

 go mod init main
 go mod tidy
 go run main

看起来 build 可以将模块解析到当前目录。 否则,你必须告诉 go 模块在哪里

,

在终端中,你应该使用

go run .

代替

go run main.go