슬라이스 사용하기

이재홍 http://www.pyrasis.com 2014.12.17 ~ 2015.02.07

슬라이스 복사하기

슬라이스의 요소를 모두 복사할 때는 copy 함수를 사용합니다.

  • copy(복사될 슬라이스, 원본 슬라이스)
a := []int{1, 2, 3, 4, 5}
b := make([]int, 3) // make 함수로 공간을 할당

copy(b, a)     // 슬라이스 a의 요소를 슬라이스 b에 복사

fmt.Println(a) // [1 2 3 4 5]
fmt.Println(b) // [1 2 3]: 슬라이스 b의 길이는 3이므로 a의 요소 3개만 복사됨

실행 결과

[1 2 3 4 5]
[1 2 3]

복사될 슬라이스 b에는 make 함수로 공간을 할당합니다. 공간을 할당하지 않은 빈 슬라이스에는 요소를 복사할 수 없습니다. 여기서 슬라이스 b는 길이가 3이므로 슬라이스 a의 요소 3개만 복사됩니다.

슬라이스를 복사하였으므로 복사된 슬라이스의 요소를 바꾸어도 원본 슬라이스는 바뀌지 않습니다.

a := []int{1, 2, 3}
b := make([]int, 3)

copy(b, a)     // 슬라이스를 복사하였으므로
b[0] = 9       // b[0]만 바뀌고, a[0]은 바뀌지 않음

fmt.Println(a) // [1 2 3]
fmt.Println(b) // [9 2 3]

실행 결과

[1 2 3]
[9 2 3]

저작권 안내

이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.
  • 블로그, 게시판 등에 퍼가는 것을 금지합니다.
  • 비공개 포스트에 퍼가는 것을 금지합니다.
  • 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
  • 링크 및 SNS 공유는 허용합니다.

Published

01 June 2015