Go言語 map関数について
Golangにおけるmapについてメモしておこうと思います.
基本文法
map.go
package main
import "fmt"
func main() {
m := map[string]int{"apple": 100, "banana": 200}
fmt.Println(m)
fmt.Println(m["banana"])
とします.こうすることで出力として
map[apple:100 banana:200]
200
と出力されます.
mapの作成,および中身の取り出し方は以上です.
要素の追加
さて,要素を追加したいときはどうするかですが
map2.go
package main
import "fmt"
func main() {
m := map[string]int{"apple": 100, "banana": 200}
m["lemon"] = 500
fmt.Println(m)
とすることによって出力が
map[apple:100 banana:200 lemon:500]
となるのがわかります.
要素の有無の確認
mapが辞書型のように使われることがわかりました.
では,要素の有無を判断するにはどうしたらよいでしょうか.
返り値を2つ用意して中身とブール型の真偽を得ることが出来ます.
map3.go
package main
import "fmt"
func main() {
m := map[string]int{"apple": 100, "banana": 200}
v, ok := m["apple"]
fmt.Println(v, ok)
値(value)と,真理値(ok)を判断すると出力が以下のように得られます.
100
true
無事,appleの100,およびtrueが得られました.この指定された要素が存在しないときは0のみが返ってきます.また,補足ですが2つ目の返り値は必ずしも必要なく省略可能です.したがって
map3-0.go
v := m["apple"]
fmt.Println(v)
としてもOKです.