我正在制作一个 Go 程序并创建了一个模块来划分它。这是我的工作树(minimal目录位于$GOPATH/src/):
minimal/
├── main.go
└── ui
├── go.mod
├── go.sum
└── ui.go
在ui模块中,我有以下内容:
package ui
import "github.com/satori/go.uuid"
func SomeFunction() {
id, err := uuid.NewV4()
if err == nil {
print(id.String())
} else {
print(err)
}
}
包使用这个main模块如下
package main
import "minimal/ui"
func main() {
ui.SomeFunction()
}
这是go.mod文件:
module minimal/ui
go 1.14
require github.com/satori/go.uuid v1.2.0
在主包文件夹中运行go build时,一切正常并生成二进制文件。但是,仅构建模块时,ui会出现以下编译错误:
ui$ go build
# minimal/ui
./ui.go:6:10: assignment mismatch: 2 variables but uuid.NewV4 returns 1 values
您可以检查https://github.com/satori/go.uuid以查看该函数返回两个值。让我感到困惑的是,构建主包可以工作,但模块却不行。这是为什么?
呼啦一阵风
呼如林
相关分类