我有这个: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[:]...)
至尊宝的传说
TA贡献1789条经验 获得超10个赞
混淆是由于 Go 和其他语言中的命名略有不同。类似不同长度数组的数据结构,在Go中被各种语言称为“array”、“vector”、“list”的数据结构被称为“slice”。而 Go 中的“数组”是另一回事——一种固定长度的结构。
- 2 回答
- 0 关注
- 93 浏览
添加回答
举报
0/150
提交
取消