가장 빨리 만나는 Go 언어 Unit 22.3 슬라이스 복사하기

저작권 안내
  • 책 또는 웹사이트의 내용을 복제하여 다른 곳에 게시하는 것을 금지합니다.
  • 책 또는 웹사이트의 내용을 발췌, 요약하여 강의 자료, 발표 자료, 블로그 포스팅 등으로 만드는 것을 금지합니다.

슬라이스 사용하기

이재홍 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

2015-06-01