728x90

슬라이스 복제 (이전에 봤던 같은 곳을 가르켜서 값이 같이 변경되는 것을 방지)

slice1 := []int{1, 2, 3, 4, 5}
slice2 := make([]int, len(slice1)) // slice1과 같은 길이의 슬라이스 생성

for i, v := range slice1
{
    slice2[i] = v    // slice1의 모든 요소값 복사
}

slice1[1] = 100    // slice1 [1, 100, 3, 4, 5]
                   // slice2 [1, 2, 3, 4, 5]

 

append를 이용한 슬라이스 복제

slice1 := []int{1, 2, 3, 4, 5}

// append를 이용한 slice1 복사
slice2 := append([]int{}, slice1[0], slice1[1], slice1[2], slice1[3], slice1[4])

 

copy를 이용한 슬라이스 복사

slice1 := []int{1, 2, 3, 4, 5}
slice2 := make([]int, len(slice1)) // slice1과 같은 길이의 슬라이스 생성

copy(slice2, slice1)

 

- 출처 : Tucker의 Go 언어 프로그래밍

728x90

+ Recent posts