type slice []Tfunc (s *slice) remove(element T) []T { newSlice := []T{} for _, i:= range s { if i != element { newSlice = append(newSlice, i) } } return newSlice}我正在嘗試創(chuàng)建一個(gè)通用的接收器函數(shù)來(lái)從切片中刪除元素,在我正在使用的代碼上方,但我收到未聲明的名稱:T錯(cuò)誤..
1 回答

森林海
TA貢獻(xiàn)2011條經(jīng)驗(yàn) 獲得超2個(gè)贊
那是因?yàn)槟€沒(méi)有將類型定義slice為泛型類型。T您剛剛將其定義為類型T不存在的類型的一部分。
如果您確實(shí)定義slice為通用類型,那么您的方法有效:
type slice[T comparable] []T
func (s *slice[T]) remove(element T) []T {
newSlice := []T{}
for _, i := range *s {
if i != element {
newSlice = append(newSlice, i)
}
}
return newSlice
}
(還需要range s改成range *s)
- 1 回答
- 0 關(guān)注
- 88 瀏覽
添加回答
舉報(bào)
0/150
提交
取消