Golang 슬라이스 추가(append) 삭제 방법

슬라이스에 값을 추가하거나 삭제하는 방법에 대해 살펴보겠습니다.

먼저 추가하는 방법부터 차례대로 보도록 하겠습니다.

 

슬라이스 추가

값을 추가하기 위해 append 함수를 사용합니다.

slice = append(slice, 추가요소)

 

append 함수를 사용해 값을 추가하면 슬라이스 마지막 부분에 추가됩니다.

 

추가하기 예제

package main

import "fmt"

func main() {
	slice := []int{1, 2, 3}
	slice = append(slice, 4)

	fmt.Println(slice) //[1, 2, 3, 4]
}

 

슬라이스 앞부분에 값을 추가하고 싶은 경우도 있습니다.

unshift 처럼 슬라이스 앞에 추가해주는 함수는 특별히 없습니다.

앞에 추가하고 싶은 경우에도 append 함수를 사용합니다.

 

앞에 추가하기 예제

package main

import "fmt"

func main() {
	slice := []int{1, 2, 3}
	slice = append([]int{4}, slice...)

	fmt.Println(slice) //[4, 1, 2, 3]
}

 

추가하고 싶은 요소가 슬라이스 앞부분에 추가되었습니다.

 

슬라이스 삭제

이번에는 슬라이스에서 값을 삭제하는 방법을 보겠습니다.

 

삭제 예제

package main

import "fmt"

func main() {
	slice := []int{1, 2, 3}

	// 앞부분 삭제
	slice = slice[1:]

	fmt.Println(slice) // [2, 3]
}

 

앞부분에 있는 값이 삭제되었습니다.

이번에는 슬라이스 뒷부분에 있는 값을 삭제하는 예제를 보겠습니다.

 

뒷부분 삭제 예제

package main

import "fmt"

func main() {
	slice := []int{1, 2, 3}

	// 뒷부분 삭제
	slice = slice[:len(slice)-1]

	fmt.Println(slice) // [1, 2]
}

 

슬라이스 마지막에 있던 값을 삭제했습니다.

중간 값을 제거하는 방법도 보겠습니다.

 

중간 값 삭제 예제

package main

import "fmt"

func main() {
	slice := []int{1, 2, 3}

	// 중간값 삭제
	slice = append(slice[:1], slice[2:]...)

	fmt.Println(slice) // [1, 3]
}

 

중간 값이 삭제가 되었습니다.

좀 더 간편한 방법이 없나 찾아봐야겠지만 우선은 삭제하는 방법은 이렇게 사용해야겠네요.

댓글