为了账号安全,请及时绑定邮箱和手机立即绑定

无法传播数组以作为多个参数传递

无法传播数组以作为多个参数传递

Go
RISEBY 2023-05-04 16:51:04
我有这个:methods := [...]string{"POST", "PUT"}router.HandleFunc(h.makeRegisterNewUser("/api/v1/register", v)).Methods("POST", "PUT")可以使用,除非methods未使用。如果我试试这个:methods := [...]string{"POST", "PUT"}router.HandleFunc(h.makeRegisterNewUser("/api/v1/register", v)).Methods(methods...)我收到此错误:不能在 router.HandleFunc(h.makeRegisterNewUser("/api/v1/register", v)).Methods 的参数中使用方法(类型 [2]string)作为类型 []string我想不通这个
查看完整描述

2 回答

?
撒科打诨

TA贡献1934条经验 获得超2个赞

你不需要...methods := [...]string{"POST", "PUT"}

 methods := []string{"POST", "PUT"}

编辑:数组与切片略有不同。该[...]符号创建一个数组,而可变参数函数(如Methods()接受切片)。如果你真的需要一个数组,你可以使用它的一部分[:]

router.HandleFunc(h.makeRegisterNewUser("/api/v1/register", v)).Methods(methods[:]...)



查看完整回答
反对 回复 2023-05-04
?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

混淆是由于 Go 和其他语言中的命名略有不同。类似不同长度数组的数据结构,在Go中被各种语言称为“array”、“vector”、“list”的数据结构被称为“slice”。而 Go 中的“数组”是另一回事——一种固定长度的结构。



查看完整回答
反对 回复 2023-05-04
  • 2 回答
  • 0 关注
  • 93 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信