슬라이스에서 요소 삭제
이 Go 코드 조각은 슬라이스에서 요소를 제거하는 방법을 보여줍니다.
func main() { a := []string{"Hello1", "Hello2", "Hello3"} fmt.Println(a) // [Hello1 Hello2 Hello3] a = append(a[:0], a[1:]...) fmt.Println(a) // [Hello2 Hello3] }
이 코드는 추가 기능을 사용하여 요소를 삭제하는 트릭을 보여줍니다. 이것이 어떻게 작동하며 ...(점 점 점) 연산자는 무엇을 합니까?
슬라이스 a에서 인덱스 i에 있는 요소를 삭제하는 구문은 다음과 같습니다.
a = append(a[:i], a[i+1:]...)
설명:
append가 호출될 때 첫 번째 인수는 수정되는 슬라이스와 동일한 유형의 슬라이스여야 하며(이 경우 a), 두 번째 인수는 모든 숫자를 허용하는 가변 매개변수입니다. 동일한 유형의 요소로 구성되며 반환 값은 요소가 추가된 새 슬라이스입니다.
주어진 코드에서 스프레드 연산자는 a[1:]의 요소를 variadic으로 압축 해제합니다. 추가 인수. 이는 a[1], a[2], ... 요소를 수동으로 전달하는 것과 같습니다. 첫 번째 인수는 이전 요소를 덮어쓰도록 보장하는 빈 슬라이스입니다.
결론:
이 트릭을 사용하면 제거하려는 요소 전후의 요소로 슬라이스를 재구성하여 슬라이스에서 요소를 삭제할 수 있습니다. 스프레드 연산자는 슬라이스에 다시 추가할 요소를 언패킹하는 데 중요한 역할을 합니다.
위 내용은 Append 및 Spread 연산자를 사용하여 Go 슬라이스에서 요소를 효율적으로 삭제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!