导入 go 包时的问题

这是我的代码结构:


addition

|_ summing

   |_ sum_prg.go

|_ addition.go

|_ go.mod

go.mod 的内容


module addition


go 1.14

sum_prg.go 的内容


package summing


func sumIt(ii int) int {

    return ii + 10

}

add.go 的内容


package main


import (

    "fmt"

    "summing"

)


func main() {

    fmt.Println("hi")

    fmt.Println(summing.sumIt(1))

}

这是我运行的步骤:

  1. 在addition文件夹里面,去mod init add

  2. 在 summing 文件夹中,去构建

  3. 回到加法,去安装加法

在第 3 步中,我收到一个错误“addition.go:5:2: package summing is not in GOROOT (c:\go\src\summing)”

这是我的第一次 Go 编程尝试。

我可以成功地按照此处列出的步骤进行操作,但是当我尝试按照相同的步骤操作时,我看到了上面提到的错误。

我是否总是需要使用 somethng.com/else 形式的模块名称?


梵蒂冈之花
浏览 95回答 1
1回答

jeck猫

你可以从模块FAQ中看到模块是否可以与 import "./subdir" 等相对导入一起使用?不,请参阅#26645,其中包括:在模块中,最后有一个子目录的名称。如果父目录显示“ module m”,则子目录导入为“ m/subdir”,不再是“ ./subdir”。因此,正如评论的那样,使用“ addition/summing”(带有导出的方法名称)从main.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go