Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- Sync
- bitcoin
- window
- Python
- 영화
- install
- package
- Close
- channel
- File
- Golang
- 책
- 리뷰
- go언어
- GO 언어
- write
- windows
- c++
- range
- API
- mutex
- go
- json
- JavaScript
- Linux
- http
- C
- tcp
- FOR
- Callback
Archives
- Today
- Total
Code Habit
Go ) 배열 본문
Go 언어에서 배열은 다음과 같이 사용한다.
- var 배열명 [길이]자료형
var a [5]int
a[2] = 7
fmt.Println(a) // [0 0 7 0 0]
배열을 생성하면서 값을 초기화 하려면 다음과 같이 쓰면 된다.
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 키워드, 자료형과 길이 생략
...을 사용하면 초기화할 값의 개수에 따라 자동으로 크기가 설정된다.
c := [...]int{32, 29, 78, 16, 81}
d := [...]string{"Maria", "Andrew", "John"}
자료형 앞에 대괄호를 여러 번 사용하면 다차원 배열을 만들 수 있다. 다음은 2차원 배열을 만들고 값을 초기화 한다.
a := [3][3]int{
{1, 2, 3},
{4, 5, 6},
{7, 8, 9},
}
배열의 길이는 len 함수로 구할 수 있다.
a := [5]int{32, 29, 78, 16, 81}
for i:=0; i < len(a); i++ {
fmt.Println(a[i])
}
range 키워드를 사용하여 배열의 길이를 구하지 않고 좀 더 간단하게 배열의 요소를 가져올 수 있다.
- for 인덱스, 값 := range 배열 {}
a := [5]int{32, 29, 78, 16, 81}
// i에는 인덱스 value에는 값이 들어감
for i, value := range a {
fmt.Println(i, value)
}
// i에 인덱스가 들어감
for i := range a {
fmt.Println(i)
}
// value에 값 들어감 ( 인덱스 변수 생략 : _ 사용 )
for _, value := range a {
fmt.Println(value)
}
※ Go 언어는 결과값을 여러 개 리턴할 수 있는 특징이 있다. 따라서 결과값을 모두 받으려면 변수 개수를 맞춰주어야 하고, 변수 없이 개수만 맞출 때 밑줄 문자를 사용해야 한다.
Go 언어의 배열 변수는 배열 전체를 뜻하며 첫 번째 요소의 포인터가 아니다. 따라서 배열을 다른 변수에 대입하면 배열 전체가 복사된다.
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]