Golang

Maps & Structs

느리지만 꾸준하게 2021. 12. 12. 01:35

map의 key값과 value값을 string으로 지정을 해보자.

package main

import "fmt"

func main() {
	jay := map[string]string{"name": "jay", "age":"27"}
	fmt.Println(jay)
}

// map[age:27 name:jay]

 

value만 원한다고 하면 

package main

import "fmt"

func main() {
	jay := map[string]string{"name": "jay", "age":"27"}
	for _, value := range jay {
		fmt.Println(value)
	}
}

// jay
// 27

key만 원한다고 하면

package main

import "fmt"

func main() {
	jay := map[string]string{"name": "jay", "age":"27"}
	for key, _ := range jay {
		fmt.Println(key)
	}
}

// name
// age

 

struct는 obejct와 비슷하고 map보다 유연하다.

아래와 같이 struct를 만드는 것은 코드상 보기 좋지 않다. 

package main

import "fmt"

type person struct {
	name string
	age int
	favFood []string
}

func main() {
	favFood := []string{"kimchi", "ramen"}
	jay := person{"jay", 27, favFood}
	fmt.Println(jay.name)
}
// jay

좀 더 명확하게 보이게 할려면 아래와 같이한다.

package main

import "fmt"

type person struct {
	name string
	age int
	favFood []string
}

func main() {
	favFood := []string{"kimchi", "ramen"}
	jay := person{name: "jay", age: 27, favFood: favFood}
	fmt.Println(jay.name)
}
// jay

그리고 field value와 value 형식을 동시에 적을 수는 없다. 즉, 하나로 통일을 해야한다.

package main

import "fmt"

type person struct {
	name string
	age int
	favFood []string
}

func main() {
	favFood := []string{"kimchi", "ramen"}
	jay := person{name: "jay", 27, favFood}
	fmt.Println(jay.name)
}

// # command-line-arguments
// .\main.go:13:29: mixture of field:value and value initializers

 

 

 

 

 

 

 

 

 

<출처 노마드 코더: 쉽고 빠른 Go 시작하기>

https://nomadcoders.co/go-for-beginners/lobby

 

Watch Now – 노마드 코더 Nomad Coders

 

nomadcoders.co

 

'Golang' 카테고리의 다른 글

Golang debug console 문제  (0) 2021.12.16
Arrays & Slices  (0) 2021.12.12
Pointers  (0) 2021.12.12
if & switch  (0) 2021.12.12
for&range&args  (0) 2021.12.12