저작권 안내
- 책 또는 웹사이트의 내용을 복제하여 다른 곳에 게시하는 것을 금지합니다.
- 책 또는 웹사이트의 내용을 발췌, 요약하여 강의 자료, 발표 자료, 블로그 포스팅 등으로 만드는 것을 금지합니다.
핵심 정리
이재홍 http://www.pyrasis.com 2014.12.17 ~ 2015.02.07
range로 배열 순회 배열을 순회할 때는 for 반복문에서 range 키워드를 사용합니다.
a := [5]int{32, 29, 78, 16, 81}
for i, value := range a { // i에는 인덱스, value에는 배열 요소의 값이 들어감
fmt.Println(i, value)
}
배열을 대입하면 배열 전체가 복사됩니다.
a := [5]int{1, 2, 3, 4, 5}
b := a // 배열을 대입하면 배열 전체가 복사됨
fmt.Println(a) // [1, 2, 3, 4, 5]
fmt.Println(b) // [1, 2, 3, 4, 5]
슬라이스는 길이가 고정되어 있지 않으며 동적으로 크기가 늘어납니다. 그리고 배열과는 달리 레퍼런스 타입입니다.
a := []int{1, 2, 3}
var b []int // 슬라이스로 선언
b = a // a를 b에 대입해도 요소가 모두 복사되지 않고 참조만 함
b[0] = 9 // 슬라이스는 참조이므로 a[0], b[0]의 값이 모두 바뀜
fmt.Println(a) // [9 2 3]
fmt.Println(b) // [9 2 3]
슬라이스를 복사할 때는 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개만 복사됨
슬라이스는 [ ] (대괄호)로 일정 위치를 지정하여 부분 슬라이스를 만들 수 있습니다.
a := []int{1, 2, 3, 4, 5}
fmt.Println(a[0:3]) // [1 2 3]
fmt.Println(a[1:3]) // [2 3]
fmt.Println(a[2:5]) // [3 4 5]
맵은 키-값 형태로 자료를 저장하며 레퍼런스 타입입니다.
solarSystem := make(map[string]float32) // 키는 string, 값은 float32인 맵 생성 및 공간 할당
solarSystem["Mercury"] = 87.969 // 맵[키] = 값
solarSystem["Venus"] = 224.70069
solarSystem["Earth"] = 365.25641
solarSystem["Mars"] = 686.9600
solarSystem["Jupiter"] = 4333.2867
solarSystem["Saturn"] = 10756.1995
solarSystem["Uranus"] = 30707.4896
solarSystem["Neptune"] = 60223.3528
맵을 순회할 때는 for 반복문에서 range 키워드를 사용합니다.
for key, value := range solarSystem { // 반복문이 실행될 때마다 키와 값이 자동으로 변수에 들어감
fmt.Println(key, value)
}
맵 안에는 맵을 넣을 수 있습니다.
a := map[string]map[string]int{
"Hello": map[string]int{
"world": 10,
},
}
fmt.Println(a["Hello"]["world"]) // 10
저작권 안내
이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.- 블로그, 게시판 등에 퍼가는 것을 금지합니다.
- 비공개 포스트에 퍼가는 것을 금지합니다.
- 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
- 링크 및 SNS 공유는 허용합니다.