Map과 Strunct는 Object를 만드는 한 방법이며, 아래에서 생성하는 방법을 아주 간단하게 휙- 적어놓으려고 한다.
웹 강의로만 보고 적는 것이기 때문에 디테일은 떨어질 것이지만 차차 채워나가는 걸로 해야지
MAP
map은 key와 value로 이루어진 object와 비슷한 것인데 아래와 같이 생성한다.
nico := map[string]string{"name": "nico", "age": "12"}
fmt.Println(nico)
// map[age:12 name:nico]
map[key]value{key:value}의 형식으로 생성하고 표기한 key와 value의 타입을 잘 맞춰서 값을 대입해준다.
위의 age 같은 경우도 value의 타입을 string으로 설정해두었기 때문에 12가 아닌 "12"로 입력한다.
map을 loop에서도 사용할 수 있다.
func main() {
nico := map[string]string{"name" : "nico", "age" : "12"}
for key, value := range nico {
fmt.Println(key, value)
// name nico
// age 12
}
}
STRUCT
type person struct {
name string
age int
favFood []string // slice
}
func main() {
favFood := []string{"pizza", "gobchang"}
merry := person{"merry", 20, favFood}
fmt.Println(merry)
// {merry 20 [pizza gobchang]}
}
하지만 위와 같이 작성하면 가독성이 떨어진다. person의 구성요소를 기입할 때마다 확인해야하기 때문!
그래서 코드가 좀 길어지긴 하지만 가독성을 위해
favFood := []string{"pizza", "gobchang"}
merry := person{name : "merry", age: 20, favFood: favFood}
fmt.Println(merry)
위와 같이 작성해주자!
'개발이야기 > GO' 카테고리의 다른 글
GO - 채널(Channel) (0) | 2021.05.22 |
---|---|
GO - goroutine (0) | 2021.05.22 |
GO - Arrays / Slices (0) | 2021.05.17 |
GO - Pointers(포인터) (0) | 2021.05.17 |
GO - if / else / switch (0) | 2021.05.17 |