golang not enough arguments in call to uuid.Must

错误信息

D:\go_workspace\pkg\mod\github.com\goadesign\goa@v1.4.0\uuid\uuid.go:18:23: not enough arguments in call to uuid.Must
have (uuid.UUID)
want (uuid.UUID, error)

情况

使用了goadesign微服务框架, 然后使用go mod 包管理,报了以上错误

原因,goadesign,里面的uuid引用了 https://github.com/satori/go.uuid
然而作者提交了个更新,方法参数有变化,导致调用不了。

https://github.com/satori/go.uuid/issues/66 这里面很多人讨论.可以看下。

解决方法

1、首先下载github.com/gofrs/uuid,这个是其他人还原版本的
https://github.com/gofrs/uuid

go get github.com/gofrs/uuid

2、找到goadesign本地源码(应该说,打包会引用到的那个路径 gopath or vendor or mod/cache) 此处结合是否使用了go mod.

GO111MODULE=off
无模块支持,go 会从 GOPATH 和 vendor 文件夹寻找包。
GO111MODULE=on
模块支持,go 会忽略 GOPATH 和 vendor 文件夹,只根据 go.mod下载依赖。
GO111MODULE=auto
在 $GOPATH/src外面且根目录有 go.mod文件时,开启模块支持。
在使用模块的时候, GOPATH是无意义的,不过它还是会把下载的依赖储存在 $GOPATH/src/mod中,
也会把 go install的结果放在 $GOPATH/bin中
摘自 https://www.colabug.com/3827784.html

如D:\go_workspace_test\goa.demo.calculator\vendor\github.com\goadesign\goa\uuid\uuid.go

修改导包

import uuid "github.com/gofrs/uuid"
//import uuid "github.com/satori/go.uuid"

这样就ok了。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值