Go言語 map関数について

Golangにおけるmapについてメモしておこうと思います.

基本文法

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の作成,および中身の取り出し方は以上です.

要素の追加

さて,要素を追加したいときはどうするかですが

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つ用意して中身とブール型の真偽を得ることが出来ます.

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つ目の返り値は必ずしも必要なく省略可能です.したがって

    v := m["apple"]
    fmt.Println(v)

としてもOKです.

bannerAds