- [golang]Golang 배열(Array) 다루기 목차
| Go언어 배열(Array)
배열과 slice의 관계
- 배열은 용량, 길이 항상 같다
- 배열 vs 슬라이스의 차이점을 알아야한다
- 길이고정 vs 길이가변
- 값 type vs 참조 type
- 복사 전달 vs 참조 값 전달
- 전체 비교연산자 사용가능 vs 비교 연산자 사용 불가
- 대부분 슬라이스를 사용한다
- 대표적으로 cap() & len() 메서드가 존재한다
cap : 배열, 슬라이스 용량
len : 배열, 슬라이스 개수
- 참고 사이트
배열 선언 문법
package main
func main() {
//배열 선언 방법
var arr1 [5]int
var arr2 [5]int = [5]int{1, 2, 3, 4, 5}
var arr3 = [5]int{1,2,3,4,5}
arr4 := [5]int{1,2,3,4,5} // 짧은 선언
arr5 := [5]int{1,2,3} // 1,2,3 뒤에 나머지 0으로 초기화
arr6 := [...]int{1,2,3,4,5} // 배열 크기 자동 맞춤
//5*5 2차원배열 출력
// [[1,2,3,4,5],[6,7,8,9,10],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0]]
arr7 := [5][5]int{
{1,2,3,4,5}, // 0번째 index
{6,7,8,9,10}, //1 번째 index
}
arr1[2] = 5 // [0,0,2,0,0,0]
}
여기서 주의해야할 점
- arr1과 같이 선언하는 경우 0으로 초기화된 배열이 생성된다.
- arr2와 같이 선언하는 경우 배열의 type과 안에 원소의 개수까지 정확하게 일치해야 한다.
| 배열 순회
package main
import "fmt"
func main() {
//배열 순회
arr1 := [5]int{1, 10, 100, 1000, 10000}
//case1
for i := 0; i < len(arr1); i++ {
fmt.Println(i)
}
//case2 range활용
for _, v := range arr1 {
fmt.Print(v)
fmt.Println()
}
//case2-1
for i := range arr1 {
fmt.Print(i)
}
}
정적인 for문으로 접근할 수 있지만, range 문법을 활용하여 index와 value 값을 쉽게 순회할 수 있다.
'golang' 카테고리의 다른 글
[golang]고언어 정렬(sort)과 복사(copy) (0) | 2021.07.04 |
---|---|
[golang]슬라이스(slice)란? (0) | 2021.07.04 |
[golang]Golang 문자열 연산과 결합 (0) | 2021.07.04 |
[golang]Go언어 문자열 (0) | 2021.07.02 |
[golang]문법 정리 (0) | 2021.07.01 |