1. 배열
- 배열은 연속적인 메모리 공간에 동일한 타입의 데이타를 순서적으로 저장하는 자료구조
- Go에서 배열의 첫번째 요소는 0번, 그 다음은 1번, 2번 등으로 인덱스를 매긴다 (Zero based array).
- 배열의 선언은 "var 변수명 [배열크기] 데이타타입" 과 같이 하는데, 배열크기를 데이타타입 앞에 써 주는 것이 C, Java 같은 다른 언어들과 다르다. Go에서 배열의 배열크기는 Type을 구성하는 한 요소이다. 즉, [3]int와 [5]int는 서로 다른 타입으로 인식된다. 배열이 선언된 후에 각 배열의 요소를 인덱스를 사용하여 읽거나 쓸 수 있다.
package main
func main() {
var a [3]int //정수형 3개 요소를 갖는 배열 a 선언
a[0] = 1
a[1] = 2
a[2] = 3
println(a[1]) // 2 출력
}
2. 배열의 초기화
- 배열을 정의할 때, 초기값을 설정할 수도 있다. 초기값은 "[배열크기] 데이타타입" 뒤에 { } 괄호를 두고 초기값을 순서대로 적으면 된다. 즉, 위 예제의 배열 초기화를 다음과 같이 할 수 있다. 만약 초기화 과정에서 [...] 를 사용하여 배열크기를 생략하면 자동으로 초기화 요소 숫자만큼 배열크기가 정해진다.
var a1 = [3]int{1, 2, 3}
var a3 = [...]int{1, 2, 3} //배열크기 자동으로
- [...]으로 자동으로 배열의 크기를 지정하는 건 이번에 처음 알았다.
3. 다배열 배열
- Go는 다차원 배열을 지원한다.
- 다차원 배열은 배열크기 부분을 복수 개로 설정하여 선언한다. 예를 들어, 3 x 4 x 5 차원 정수 배열을 만들려면, 다음과 같이 배열을 정의한다. 다차원 배열의 사용은 일차원 배열과 유사하게 각 차원별 배열인덱스를 지정하여 사용한다.
var multiArray [3][4][5]int // 정의
multiArray[0][1][2] = 10 // 사용
- 이런 형태의 배열은 사용해본 적이 없는 것 같다.
- 기초인 만큼 이런 것도 읽어봤다.
4. 다차원 배열의 초기화
- 초기화는 다차원이므로 배열 초기값 안에 다시 배열값을 넣는 형태를 하고 있다.
func main() {
var a = [2][3]int{
{1, 2, 3},
{4, 5, 6}, //끝에 콤마 추가
}
println(a[1][2]) // 6출력
}
- 언어의 기초인 만큼 다른 언어와 비슷한 형태라서 공부하기 편했다.
참고 사이트
http://golang.site/go/article/12-Go-%EC%BB%AC%EB%A0%89%EC%85%98---%EB%B0%B0%EC%97%B4
Go Playground 사이트(Go를 깔지 않아도 여기서 코딩할 수 있다.)
'개발 > Go' 카테고리의 다른 글
[Go] 기초 - 컬렉션 (Map) (0) | 2022.07.22 |
---|---|
[Go] 기초 - 컬렉션 (Slice) (0) | 2022.07.21 |
[Go] 기초 - 클로저 (Closure) (0) | 2022.07.19 |
[Go] 기초 - 익명함수 (0) | 2022.07.18 |
[Go] 기초 - 함수 (0) | 2022.07.17 |