【问题标题】:Remove element from vector.Vector从vector.Vector中删除元素
【发布时间】:2011-05-21 14:46:59
【问题描述】:
//Remove cl (*client) from clients (vector.Vector)
for i := 0; i < clients.Len(); i++ {
    if cl == clients.At(i).(*client) {
        clients.Delete(i)
        break
    }
}

有没有更短的方法从向量中删除元素?

【问题讨论】:

  • 短于clients.Delete(i)?
  • @cthom06 我不知道向量中元素的索引

标签: go


【解决方案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:]...)
    }
}

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

【讨论】:

    猜你喜欢
    • 2013-02-14
    • 2018-01-17
    • 1970-01-01
    • 1970-01-01
    • 2018-12-04
    • 2013-07-09
    • 2012-10-07
    • 2018-07-03
    • 2013-09-14
    相关资源
    最近更新 更多