Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Go言語(Golang)のmap

More than 1 year has passed since last update.

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です.

makki_maki04
興味を収束させたい男
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away