본문 바로가기

개발이야기/GO

GO - Map / Struct

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