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 |
---|