반응형
1. 배열
- 선언
//3가지 모두 가능
var a [5]int = [5]int{11,22,33,44,55}
var a = [5]int{11,22,33,44,55}
a:= [5]int{11,22,33,44,55}
- ...를 사용하면 초기화할 배열 요소(값)의 개수에 따라 자동으로 크기 설정
x := [...]string{"train", "airplane", "car", "bus"}
//초기화 할 요소가 4개이며 ...에따라 배열 크기는 자동적으로 4로 설정된다.
2. 슬라이스
- 선언
var a []int = make([]int, 5) //슬라이스 길이 : 5
var b = make([]int, 5)
c := make([]int, 5)
var d = make([]int, 5, 10) //길이가 5이고 용량이 10인 슬라이스 생성
슬라이스 붙이기(append)
a := []int{1,2,3}
b := []int{4,5,6}
a = append(a, b...) //슬라이스 a에 슬라이스 b를 붙임
슬라이스 복사(copy)
a := []int{1,2,3,4,5}
b := make([]int, 3) //공간 3만큼 할당
copy(b, a) // 슬라이스 a의 요소를 b에 복사함
fmt.Println(a) //[1 2 3 4 5] 출력
fmt.Println(b) //[1 2 3] 출력
3. 맵
- 선언
맵은 make함수로 공간을 할당해야 값을 넣을 수 있다.
var m map[string]int //선언
//key는 string, value는 int인 맵에 make함수로 공간 할당
var a map[string]int = make(map[string]int)
var b = make(map[string]int)
c := make(map[string]float32)
c["barcode1"] = 3345.2956 //맵에 데이터 저장
//맵을 생성하며 키와 값을 초기화
d := map[stirng]int{
"Kim" : 29,
"Park" : 32,
}
맵에서 키 찾아 값(value) 출력하기
solarSystem := make(map[string]float32)
solarSystem["Mercury"] = 87.979
solarSystem["Venus"] = 224.3434
solarSystem["Earth"] = 365.0348
solarSystem["Mars"] = 686.9600
solarSystem["Jupiter"] = 434.979
solarSystem["Saturn"] = 34.246
solarSystem["Uranus"] = 6012.3435
solarSystem["Neptune"] = 2324.2435
value, ok := solarSystem["Pluto"]
fmt.Println(value, ok) //0, false
if value, ok := solarSystem["Uranus"]; ok{
fmt.Println(value) //6012.3435
}
//맵 모든 값 출력
for key, value := range solarSystem{
fmt.Println(key, value)
}
//멥에서 Mercury키 삭제
delete(solarSystem, "Mercury")
맵 안에 맵 만들기 map[키의_자료형]map[키의_자료형]값의_자료형
func main() {
terrestrialPlanet :=
map[string]map[string]float32{
"Mercury": map[string]float32{
"meanRadius": 2439.7, // 반지름
"mass": 3.3022e+23, // 질랑
"orbitalPeriod": 87.979, //공전주기
},
"Venus": map[string]float32{
"meanRadius": 6051.8,
"mass": 4.8676e+24,
"orbitalPeriod": 224.70069,
},
"Earth": map[string]float32{
"meanRadius": 6371.0,
"mass": 3.3022e+23,
"orbitalPeriod": 365.25641,
},
"Mars": map[string]float32{
"meanRadius": 3389.5,
"mass": 6.4185e+23,
"orbitalPeriod": 686.9600,
},
}
fmt.Println(terrestrialPlanet["Mars"]["mass"])
//출력 : 6.4185E+23
}
반응형
'백엔드, 기타 > Golang' 카테고리의 다른 글
Golang 3. 2)인터페이스 (0) | 2020.08.20 |
---|---|
Golang 3. 1)포인터와 구조체 (0) | 2020.08.19 |
Golang 2. 함수 2)클로저(closure), 지연호출(defer), 패닉과 복구(panic and recover) (0) | 2020.08.15 |
Golang 2. 함수 1)함수의 리턴값/ 변수,슬라이스,맵에 함수 대응하기/클로저 (0) | 2020.08.15 |
Golang 1. 기본 문법 1)타입, for, switch문 (0) | 2020.08.13 |