1. 배열 사용하기
페이지 정보
작성자 관리자 댓글 0건 조회 3,058회 작성일 19-03-11 19:49본문
1. 배열 사용하기
배열은 길이가 고정되어 있고, 다른언어와 마찬가지로 배열의 인덱스는 0부터 시작한다.
var 배열명 [길이]자료형
package main
import "fmt"
func main() {
var a [5]int // int형이며 길이가 5인 배열 선언
a[2] = 7 // 배열의 세 번째 요소에 7 대입
fmt.Println(a) // [0 0 7 0 0]
}
배열로 만들 자료형 앞에 [](대괄호)를 붙이고 배열의 길이를 설정한다. 이렇게 생성하면 배열의 요소는 모두 0으로 초기화된다.
일반 변수와 마찬가지로 :=를 사용하여 var를 생략할 수 있다.
package main
import "fmt"
func main() {
var a [5]int = [5]int{32, 29, 78, 16, 81} // int형이며 길이가 5인 배열을 선언하고 초기화
var b = [5]int{32, 29, 78, 16, 81} // 배열을 선언할 때 자료형과 길이 생략
c := [5]int{32, 29, 78, 16, 81} // 배열을 선언할 때 var 키워드, 자료형과 길이 생략
fmt.Println(a)
fmt.Println(b)
fmt.Println(c)
}
중괄호에서 값은 한줄로 나열해도 되고, 여러줄로 나열해도 된다.
배열의 크기에 ...을 사용하면 초기화할 값의 개수에 따라 자동으로 크기가 설정된다.
package main
import "fmt"
func main() {
a := [5]int{32, 29, 78, 16, 81} // 배열을 생성하면서 값을 초기화
b := [5]int{
32,
29,
78,
16,
81, // 여러 줄로 나열할 때는 마지막 요소에 콤마를 붙임
}
c := [...]int{32, 29, 78, 16, 81} // 초기화할 요소가 5개이며 ...을 사용했으므로
// 배열 크기는 5로 설정됨
d := [...]string{"Maria", "Andrew", "Jonh"} // 초기화할 요소가 3개이며 ...을 사용했으므로
// 배열 크기는 3으로 설정됨
fmt.Println(a)
fmt.Println(b)
fmt.Println(c)
fmt.Println(d)
}
다차원 배열 선언하기
자료형 앞에 대괄호를 여러번 사용하면 다차원 배열을 만들 수 있다.
package main
import "fmt"
func main() {
a := [3][3]int{
{1, 2, 3},
{4, 5, 6},
{7, 8, 9},
}
fmt.Println(a)
}
배열 순회하기
배열안의 요소를 차례대로 출력해보겠다.
for 문으로 배열의 길이만큼 반복하면서 요소를 출력한다.
배열의 길이는 len함수로 구한다.
package main
import "fmt"
func main() {
a := [5]int{32, 29, 78, 16, 81}
for i := 0; i < len(a); i++ { // len 함수로 배열의 길이를 구한 뒤 배열의 길이 만큼 반복
fmt.Println(a[i])
}
fmt.Println(a)
}
배열의 길이를 구하지 않고 간단하게 배열의 요소를 가져오려면 for 문에서 range 키워드를 사용한다.
package main
import "fmt"
func main() {
a := [5]int{32, 29, 78, 16, 81}
for i, value := range a { // i에는 인덱스, value에는 배열 요소의 값이 들어감
fmt.Println(i, value)
}
}
range 키워드를 사용하면 반복문이 실행 될때마다 배열의 인덱스와 해당 인덱스의 값이 자동으로 변수에 들어온다.
package main
import "fmt"
func main() {
a := [5]int{32, 29, 78, 16, 81}
for value := range a { // value에는 값 대신 인덱스가 들어감
fmt.Println(value)
}
}
인덱스 변수는 생략하고, 값 변수만 사용하려면 _(밑줄)을 사용한다.
package main
import "fmt"
func main() {
a := [5]int{32, 29, 78, 16, 81}
for _, value := range a { // 인덱스는 생략, value에 배열 요소의 값이 들어감
fmt.Println(value)
}
}
배열 복사하기
배열변수는 배열 전체를 뜻하며 첫번째 요소의 포인터가 아니다.
따라서 다음과 같이 배열들 다른 변수에 대입하면 배열 전체가 복사된다.
package main
import "fmt"
func main() {
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]
}
댓글목록
등록된 댓글이 없습니다.