반응형
go는 변수명 다음에 자료형이 온다.
ex) var acet string
java는 반대이다.
ex) String acet;
Map
go
var 맵명 map[키 자료형]값 자료형
ex) var acet map[string]int
할당은 make 사용! 예제는 아래에 있음.
java는
HashMap<String, int> acet = new HashMap<String, int>
코드를 보자!
아래의 사이트에서 바로 테스트 해보면 된다.
package main
import "fmt"
func main() {
// 자바에서는 new가 있다면 go에서는 make로 map을 할당한다.
var acet map[string]string = make(map[string]string)
acet = map[string]string{"a":"aaaa"}
fmt.Println(acet["a"])
var mae = make(map[string]string)
mae = map[string]string{"mae":"bbbb"}
fmt.Println(mae["mae"])
lov := make(map[string]string)
lov = map[string]string{ // 뉴라인으로 하려면 마지막에 콤마(,)가 필요함.
"haha":"cccc",
"hoho":"dddd",
}
fmt.Println(lov["haha"])
// key가 없는지 알수 있는 방법은 리턴값 두번째를 이용. 없으면 false 리턴!
solaSystem := make(map[string]string)
solaSystem["earth"] ="my galaxy"
// 자바는 put 사용. solaSystem.put("earth", "my galaxy");
solaSystem["earth2"] ="goood~"
fmt.Println(solaSystem["earth"])
// 자바는 get 사용. solaSystem.get("earth");
value, ok := solaSystem["mars"]
fmt.Println(value, ok)
// java와 달리 if구문에 괄호가 없다! 아래와 같이 요상하게 보일만한 문법을 자주 사용!
// 리턴도 2개 이상..깜놀;
// 자바에서는 키가 있는지 확인은 solaSystem.containsKey("earth2");를 사용.
if value, ok := solaSystem["earth2"]; ok {
fmt.Println(value)
}
// 맵 순회 -> for 키, 값 := range 맵{}
for key, value := range solaSystem {
fmt.Println(key, value)
}
// value를 사용하고 싶지 않다면 언더바(_) 사용..허허~
for key, _ := range solaSystem {
fmt.Println(key, value)
}
//맵에서 데이터 삭제!
// 자바에서는 solaSystem.remove("earth"); 를 사용.
delete(solaSystem, "earth")
_, isOk := solaSystem["earth"]
fmt.Println(isOk)
}
결과
반응형
'Language > go lang' 카테고리의 다른 글
test code..반성! (0) | 2017.10.13 |
---|---|
golang Context란? (0) | 2017.09.07 |
golang 정리 (0) | 2017.05.18 |
GOROOT와 GOPATH (0) | 2017.04.27 |
go land에서 formatting 설정하기 (0) | 2017.04.26 |