我想从指针数组中删除一些结构元素

这是我的结构

type User struct{
    userName string
    userId   int
}

我正在尝试移除类似的物品。
allUser []*User
------------
------------
------------
func RemoveUser(deletedUser *User) {
    for ii := 0; ii < len(allUser); ii++ {
        if allUser[ii] == deletedUser {
            allUser = append(allUser[:ii], allUser[ii+1:])
        }
    }
}

但我收到此错误。
无法使用allUser [ii + 1:](类型[] * User作为类型*追加中的用户
我怎么了

最佳答案

The Go Programming Language Specification

Passing arguments to ... parameters

如果最终参数可分配给 slice 类型[]T,则可能是
如果参数传递为...T参数的值,则保持不变
后面跟着...

append是一个可变参数函数。您需要添加...来附加 slice 。

allUser = append(allUser[:ii], allUser[ii+1:]...)

07-25 22:12