2010-12-07 6 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 
    } 
} 

벡터에서 요소를 제거하는 더 짧은 방법이 있습니까?벡터에서 요소를 제거하십시오. 벡터

+0

은 clients.Delete (i)보다 짧습니다. – cthom06

+0

@ cthom06 벡터의 요소 인덱스를 모르겠습니다. –

답변

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:]...) 
    } 
} 

을 분명히 동일한 작업을 수행 자신의 유형에 대한 자신의 삭제 방법을 정의하는 간단하다.

관련 문제