我有這個: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 關注
- 129 瀏覽
添加回答
舉報
0/150
提交
取消