从vector.Vector中删除元素

时间:2010-12-07 14:02:48

标签: go

//Remove cl (*client) from clients (vector.Vector)
for i := 0; i < clients.Len(); i++ {
    if cl == clients.At(i).(*client) {
        clients.Delete(i)
        break
    }
}

是否有更短的方法从矢量中删除元素?

1 个答案:

答案 0 :(得分:1)

不是你要求的,但不要使用Vector,而是使用切片see here for a summary of some slice-idioms and their (deprecated/discouraged) Vector equivalents

您可以执行以下操作:

for i, c := range clients {
    if c == client {
         clients = append(clients[:i], clients[i+1:]...)
    }
}

显然,为自己的类型定义自己的删除方法也是微不足道的。