19
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Golang】Go言語のmapについて解説

Posted at

今日はGoのmapについて学習したのでこちらにアウトプットします!!

#mapとは?
rubyでいうと、ハッシュ(連想配列)に該当するものです。
キーと値がセットになっているものです。

#とりあえず色々書いてみる


package main

import "fmt"

func main() {
	m := map[string]int{"udon": 500, "ra-men": 800, "soba": 700}
	fmt.Println(m) // => map[ra-men:800 soba:700 udon:500]

	//値へのアクセス
	fmt.Println(m["ra-men"]) // => 800

	//値の更新
	m["udon"] = 450
	fmt.Println(m) // => map[ra-men:800 soba:700 udon:450]
	//値の追加
	m["new"] = 1000
	fmt.Println(m) // => map[new:1000 ra-men:800 soba:700 udon:450]

	//値が入っているか確かめることができる
	v, ok := m["soba"]
	fmt.Println(v, ok) // => 700 true

	v2, ok2 := m["so-men"]
	fmt.Println(v2, ok2) // => 0 false

	//メモリ上に空のマップを作ってから代入することもできる
	m2 := make(map[string]int)
	m2["tya-han"] = 400
	fmt.Println(m2) // => map[tya-han:400]

	//こちらは宣言はしているがメモリ上に入れるマップがないのでエラーになる
	var m3 map[string]int
	m3["tya-han"] = 400
	fmt.Println(m3) // => ERROR

	//↑のようにvarで宣言した場合はmapのときはnilが入っている(スライスも同様)
	var m3 map[string]int
	if m3 == nil {
		fmt.Println("Nil!") // => Nil!
	}
        //スライスの場合もnil
	var s []int
	if s == nil {
		fmt.Println("Nil!") // => Nil!
	}
}

##参考文献
こちらも併せて読んでいただけるとより理解が深まると思います!
Go言語: いろいろなマップの作り方まとめ
逆引きGolang (マップ)

19
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?