【问题标题】:Unable to import func A() of package main, inside another package main func main. There are 2 package main [duplicate]无法在另一个包 main func main 中导入包 main 的 func A()。主要有2个包[重复]
【发布时间】:2021-08-24 12:02:44
【问题描述】:

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

|- hello.go
|- main.go

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

【问题讨论】:

  • 它对我来说很好。
  • 从不,从字面上看,从不go run .以外的任何其他形式使用go run(除非你真的了解Go代码是如何编译和执行的)。

标签: go go-packages


【解决方案1】:

两种方法让这项工作正常

  1. 去构建。然后执行二进制文件

  2. 使用 go mod:

 go mod init main
 go mod tidy
 go run main

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

【讨论】:

    【解决方案2】:

    在终端中,你应该使用

    go run .
    

    而不是

    go run main.go
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-16
      • 2019-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-08
      • 2019-01-04
      相关资源
      最近更新 更多