//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, используйте вместо этого срез, см. Здесь краткий обзор некоторых срезов-идиом и их (устарел / не рекомендуется) векторных эквивалентов .
Вы можете сделать что-то вроде:
for i, c := range clients { if c == client { clients = append(clients[:i], clients[i+1:]...) } }
И, очевидно, тривиально определить собственный метод удаления для своих типов, который делает то же самое.