[GoLang] 배열

Pyo·2023년 11월 3일
0


이 글은 Tucker의 Go언어 프로그래밍 책을 12장 배열 보고 정리한내용이다.

배열

배열은 타입이 같은 값 여러 개를 가지는 자료 구조이다. 배열에 저장된 값을 element(요소)라고하고 위치를 인덱스라고한다.

배열


배열을 사용하게 되면 여러 데이터를 하나의 변수로 효과적으로 사용할 수 있도록 한다.

배열 사용법

  • 배열 변수 선언 및 초기화
var nums [5]int
days := [3]string{"monday","tuesday","wendsday"}
var temps [5]float64 = [5]float64{24.3,26.7}
var s = [5]int{1:10,3:30}
x := [...]int{10,20,30}
  • 배열 선언 시 개수는 항상 상수 : 배열의 개수는 상수로 선언해야 한다.
  • 배열 요소 읽고 쓰기 : 배열의 요소에 접근하여 값을 읽고 쓰려면 배열의 변수에 대괄호 []를 쓰고 접근하고자 하는 요소의 인덱스를 사용하면 된다.
  • range 순회 : for 반복문에서 range 키워드를 이용하면 배열 요소를 순회한다.
package main

import "fmt"

func main() {
	var t [5]float64 = [5]float64{24.0, 25.9, 27.8, 26.9, 26.2}
	for i, v := range t {
		fmt.Println(i, v)
	}

}

출력

0 24
1 25.9
2 27.8
3 26.9
4 26.2

배열은 연속된 메모리

요소 위치 = 배열 시작 주소 + (인덱스 * 타입 크기)

배열 복사

a := [5]int{1,2,3,4,5}
b := [5]int{500,400,300,200,100}

b = a // a 배열을 b 변수에 복사 

타입이 맞다면 변수의 복사처럼 대입연산자를 사용해 복사한다.

다중 배열

배열이 이중, 삼중 중첩된 배열로 배열을 요소로 가지는 배열이다.

package main
import "fmt"
func main() {
	var a [2][5]int = [2][5]int{
		{1, 2, 3, 4, 5},
		{5, 6, 7, 8, 9},
	}
    
	for _, arr := range a {
		for _, v := range arr {
			fmt.Print(v, " ")
		}
		fmt.Println()
	}
}

정리

  • 배열은 값을 여러개 저장하는 연속된 메모리 공간이다.
  • [] 사이에 인덱스를 넣어서 요소에 접근 할수 있다.
  • 배열의 인덱스는 0부터 시작한다.
  • 내장 함수의 길이는 len()로 배열 길이를 알수 있다.
  • range를 이용하면 for문에서 배열을 순회할수 있다.

참고

https://www.youtube.com/@TuckerProgramming

0개의 댓글