2010-12-07 3 views
2
//Remove cl (*client) from clients (vector.Vector) 
for i := 0; i < clients.Len(); i++ { 
    if cl == clients.At(i).(*client) { 
     clients.Delete(i) 
     break 
    } 
} 

Есть ли более короткий способ удалить элемент из вектора?Удалить элемент из vector.Vector

+0

короче `clients.Delete (i)?` – cthom06 2010-12-07 18:10:04

ответ

1

Не совсем то, что вы просили, но не используйте Вектор, используйте вместо него срез, 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:]...) 
    } 
} 

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

Смежные вопросы