Удалить элемент из вектора. Вектор - PullRequest
2 голосов
/ 07 декабря 2010
//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 Ответ

1 голос
/ 07 декабря 2010

Не совсем то, что вы просили, но не используйте Vector, используйте вместо этого срез, см. Здесь краткий обзор некоторых срезов-идиом и их (устарел / не рекомендуется) векторных эквивалентов .

Вы можете сделать что-то вроде:

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

И, очевидно, тривиально определить собственный метод удаления для своих типов, который делает то же самое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...