본문 바로가기
프로그래밍/Golang

Golang Slice(슬라이스) 요소 제거하기

by slowin 2024. 7. 31.

개요

Golang slice(슬라이스) 요소 제거하는 법에 대해 알아보겠습니다.

 

1. 인덱스를 사용하여 요소 제거

slice := []int{1, 2, 3, 4, 5}
index := 2 // 제거할 요소의 인덱스
slice = append(slice[:index], slice[index+1:]...)
fmt.Println("인덱스로 제거 후:", slice)
// 출력: 인덱스로 제거 후: [1 2 4 5]

append 함수를 사용하여 제거하려는 요소를 제외한 두 부분을 연결합니다. 슬라이스의 순서를 유지하면서 요소를 제거할 수 있습니다.

2. Slice(슬라이스) 처음 또는 마지막 요소 제거

slice := []int{1, 2, 3, 4, 5}
// 첫 번째 요소 제거
slice = slice[1:]
fmt.Println("첫 요소 제거 후:", slice)
// 출력: 첫 요소 제거 후: [2 3 4 5]

// 마지막 요소 제거
slice = slice[:len(slice)-1]
fmt.Println("마지막 요소 제거 후:", slice)
// 출력: 마지막 요소 제거 후: [2 3 4]

3. Slice(슬라이스) 특정 값 제거

slice := []int{1, 2, 3, 2, 4, 5}
value := 2
newSlice := make([]int, 0)
for _, v := range slice {
    if v != value {
        newSlice = append(newSlice, v)
    }
}
fmt.Println("특정 값 제거 후:", newSlice)
// 출력: 특정 값 제거 후: [1 3 4 5]

4. Slice(슬라이스) 여러 개의 연속된 요소 제거

slice := []int{1, 2, 3, 4, 5, 6, 7}
start, end := 2, 5
slice = append(slice[:start], slice[end:]...)
fmt.Println("연속된 요소 제거 후:", slice)
// 출력: 연속된 요소 제거 후: [1 2 6 7]

append 함수를 사용하여 제거하려는 범위를 제외한 두 부분을 연결합니다. 여러 요소를 한 번에 제거할 때 유용합니다.

 

정리

Go 언어에서 슬라이스의 요소를 제거하는 다양한 방법을 알아보았습니다. 상황에 맞게 적절히 사용하면 좋을것 같습니다.

 

시리즈

Golang Arrays(배열), Slice(슬라이스) - 선언, 초기화 방법

Golang Slice(슬라이스) 동작원리와 사용법

Golang Slice(슬라이스) : make, copy, append

Golang Slice(슬라이스) 요소 제거하기