我有這個: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 的參數(shù)中使用方法(類型 [2]string)作為類型 []string我想不通這個
2 回答

撒科打諢
TA貢獻1934條經(jīng)驗 獲得超2個贊
你不需要...
在methods := [...]string{"POST", "PUT"}
methods := []string{"POST", "PUT"}
編輯:數(shù)組與切片略有不同。該[...]
符號創(chuàng)建一個數(shù)組,而可變參數(shù)函數(shù)(如Methods()
接受切片)。如果你真的需要一個數(shù)組,你可以使用它的一部分[:]
:
router.HandleFunc(h.makeRegisterNewUser("/api/v1/register", v)).Methods(methods[:]...)

至尊寶的傳說
TA貢獻1789條經(jīng)驗 獲得超10個贊
混淆是由于 Go 和其他語言中的命名略有不同。類似不同長度數(shù)組的數(shù)據(jù)結(jié)構(gòu),在Go中被各種語言稱為“array”、“vector”、“l(fā)ist”的數(shù)據(jù)結(jié)構(gòu)被稱為“slice”。而 Go 中的“數(shù)組”是另一回事——一種固定長度的結(jié)構(gòu)。
- 2 回答
- 0 關(guān)注
- 142 瀏覽
添加回答
舉報
0/150
提交
取消