//Remove cl (*client) from clients (vector.Vector)
for i := 0; i < clients.Len(); i++ {
if cl == clients.At(i).(*client) {
clients.Delete(i)
break
}
}
是否有更短的方法从矢量中删除元素?
答案 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:]...)
}
}
显然,为自己的类型定义自己的删除方法也是微不足道的。