go 공부

go언어 Array,map

ari0930 2024. 8. 22. 00:11

go언어 Array, map 

Array(배열)

파이썬하고 다른 점은 go에서는 배열을 선언할 때 크기와 타입을 선언해줘야 한다. 

이건 자바의 배열 선언 방법하고 비슷하다.

	var name [5]string // 길이가 5인 string 배열 선언
    
    //초기화 하는 방법
    name := [5]string{"김", "박", "명"}
	name[3] = "황"
	name[4] = "부"

이렇게 선언하여 안의 값들을 넣을수 있다.

 

2차원 배열을 선언하는 방법은

var matrix [3][3]int // 3x3 정수형 배열 선언

// 초기화
matrix := [3][3]int{
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9},
}

이런 형식으로 선언하고 사용할수 있다.

 

만약 가변적인 크기를 가지는 배열을 원하는 경우 slice를 사용하면 파이썬의 리스트와 비슷한 배열을 이용할 수 있다.

slice 슬라이스 사용법

	name2 := []string{"김", "박", "명"} //slice 사용하는방법
	//name2[3] = "경"  이렇게 하면 오류 append 를 사용해야한다
	name2 = append(name2, "경")

append 를 사용하여 새로운 값을 추가할 수 있으면 이때 append(슬라이스명, 추가할 값...)  이런 형식으로 추가해야 한다.

 

그 외 슬라이스 생성방법

slice := make([]int, 5) // 길이가 5인 int 슬라이스 생성

slice := make([]int, 3, 5) // 길이가 3, 용량이 5인 슬라이스 생성
fmt.Println(len(slice)) // 출력: 3
fmt.Println(cap(slice)) // 출력: 5

 

슬라이스 내용물 복사방법

number := []int{1, 2, 3}
newArray := make([]int, len(number))
copy(newArray, number) // number 슬라이스의 내용을 newArray 슬라이스에 복사
fmt.Println(newArray) // 출력: [1 2 3]

copy를 이용하여 기존에 있던 슬라이스를 그대로 복사할 수 있다.

 

 

 

Map 

 

map은 key와 value를 가지면 go 언어에서는 map은 단일의 타입의 key와 다인 타입의 value를 가진다.

map 사용법은 

    m := make(map[string]int) // map을 초기화
    m["apple"] = 1            // 이제 정상적으로 동작함
    fmt.Println(m)            // 출력: map[apple:1]

make를 이용하여 생성하고 초기화해주어야 사용할 수 있다.

 

이렇게 한 번에 생성하고 값을 넣는 방법도 있다.

user := map[string]string{"name": "김", "age": "12"}

 

for을 이용할 때 key 값과 value 값을 모두 다 이용할 수 있다.

for key, value := range m {
    fmt.Println(key, value)
}

 

key 값을 이용하여 map의 값을 삭제할 수 도 있다.

delete(m, "apple") // "apple" 키를 삭제

 

반응형

'go 공부' 카테고리의 다른 글

Golang (go 언어) 함수  (0) 2024.08.14