这是我的代码结构:
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
}
addition.go 的内容
package main
import (
"fmt"
"summing"
)
func main() {
fmt.Println("hi")
fmt.Println(summing.sumIt(1))
}
这是我运行的步骤:
在版本文件夹内,go mod init 添加
在 summing 文件夹内,构建
返回附加,去安装附加
在步骤 3 中,我收到错误“addition.go:5:2: package summing is not in GOROOT (c:\go\src\summing)”
这是我第一次尝试 Go 编程。
我可以成功地按照列出的步骤进行操作here https://golang.org/doc/code.html#ImportingLocal,但是当我尝试遵循相同的步骤时,我看到了上述错误。
我是否总是需要具有 somethng.com/else 形式的模块名称?
你可以从模块常见问题解答 https://github.com/golang/go/wiki/Modules#do-modules-work-with-relative-imports-like-import-subdir
模块是否可以与相对导入(如导入“./subdir”)一起使用?
No. See #26645 https://github.com/golang/go/issues/26645#issuecomment-408572701, 包括:
在模块中,最终有一个子目录的名称。
如果父目录显示“module m
" 然后子目录被导入为 "m/subdir
", 不再 ”./subdir
".
因此,正如评论所述,使用“addition/summing
" (with 导出的方法名称 https://tour.golang.org/basics/3) 供您进口main
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)