반응형

Golang, map 예제

 

Go 언어의 map 데이터형은 파이썬 사전(dict) 데이터형과 비슷하지만,

키나 값의 데이터형은 고정으로 지정해야 합니다.

 

package main

import "fmt"

func main() {
	m := make(map[string]int) // make(map[키타입]값타입)
	m["하나"] = 0
	m["둘"] = 2

	fmt.Println(m)
	fmt.Println(m["하나"])

	m["하나"] = 1
	fmt.Println(m["하나"])

	pw := map[string]string{"sysop": "1234!", "hong": "hgs1575", "sualchi": "what", "user1": "mypassword"}
	fmt.Println(pw)
	fmt.Println(pw["sysop"])
	pw["sysop"] = "newpassword#$@@"
	fmt.Println(pw["sysop"])

	var password, ok = pw["sualchi"]
	if ok {
		fmt.Println(password)
	} else {
		fmt.Println("존재하지 않는 사용자입니다.")
	}

	delete(pw, "sualchi")
	password, ok = pw["sualchi"] // var 필요 없음 (앞에서 만들어진 변수)
	if ok {
		fmt.Println(password)
	} else {
		fmt.Println("존재하지 않는 사용자입니다.")
	}

	for name := range pw {
		fmt.Printf("%s: %s\n", name, pw[name])
	}

	for name, pass := range pw {
		fmt.Printf("%s: %s\n", name, pass)
	}
}

 

[실행 결과]

map[둘:2 하나:0]
0
1
map[hong:hgs1575 sualchi:what sysop:1234! user1:mypassword]
1234!
newpassword#$@@
what
존재하지 않는 사용자입니다.
hong: hgs1575
user1: mypassword
sysop: newpassword#$@@
user1: mypassword
sysop: newpassword#$@@
hong: hgs1575

 

반응형

+ Recent posts