如何使用append删除切片元素?

时间:2017-11-25 22:52:54

标签: go slice

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

这是我的结构

allUser []*User
------------
------------
------------
func RemoveUser(deletedUser *User) {
    for ii := 0; ii < len(allUser); ii++ {
        if allUser[ii] == deletedUser {
            allUser = append(allUser[:ii], allUser[ii+1:])
        }
    }
}

我试图删除那样的项目。

public PhoneCall getLongestPhoneCallBetween(String number1, String number2){
    double longestConvo=0;
    for(Communication i : communicationsRecord){
        if(i.getCommunicationInitiator()==number1 && i.getCommunicationReceiver()==number2){
            if(i.getCallDuration()>longestConvo){
            }


        }
    }
    return null;
}

但是我收到了这个错误。 无法使用allUser [ii + 1:](键入[] *用户类型*附加用户 我的错是什么

1 个答案:

答案 0 :(得分:3)

  

The Go Programming Language Specification

     

Passing arguments to ... parameters

     

如果最终参数可分配给切片类型[]T,则可能是   如果参数,则传递为...T参数的值不变   之后是...

append是一个可变函数。您需要添加...以附加切片。

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