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
'Basic Programming > Golang' 카테고리의 다른 글
Golang - 슬라이스 정렬 (1) | 2023.07.13 |
---|---|
Golang - 슬라이스 요소 삭제/추가 (0) | 2023.07.13 |
Golang - Slicing (0) | 2023.07.13 |
Golang - Slice append()를 사용할 때 발생하는 문제 (0) | 2023.07.12 |
Golang - Slice 기본 문법 (0) | 2023.07.12 |