0
0

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】マップ(辞書)

Posted at

#【Golang】マップ(辞書)
Golangの基礎学習〜Webアプリケーション作成までの学習を終えたので、復習を兼ねてまとめていく。 基礎〜応用まで。

package main
//map 連組配列 Pythonでいう辞書
//関数では参照渡しされるので、本体の値も変わる。配列とは違う。


import "fmt"

func main() {
	//宣言
	//mapを作成 pythonの辞書型のような感じ
	//map[キーの型]値の型{中身}
	m := map[string]int{"a": 100, "b": 200}
	fmt.Println(m)
	//>>map[a:100 b:200]
	//値取り出し
	fmt.Println(m["a"])
	//>>100

	//宣言
	//make(map[キーの型]値の型, キャパシティの初期値)
    //make(map[キーの型]値の型)// キャパシティの初期値は、省略も可能
	//初期化。空を作成
	m2 := make(map[string]int)
	fmt.Println(m2)
	//>>map[]

    //宣言
	var m3 = map[string]string{"A":"AAA", "B": "BBB"}
	fmt.Println(m3)
	//>>map[A:AAA B:BBB]




	//上書き
	m["b"] = 300
	fmt.Println(m)
	//>>map[a:100 b:300]

	//追加
	m["new"] = 500
	fmt.Println(m)
	//>>map[a:100 b:300 new:500]

	//無いものを取り出す
	//0が返ってくる
	fmt.Println(m["nothing"])
	//>>0

	//vに値(100),okはエラーでTrue(False)が返ってくる
	//okは書かなければ無視することもできる
	v, ok := m["a"]
	fmt.Println(v, ok)
	//>>100 true

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




	//追加
	m2["pc"] = 5000
	fmt.Println(m2)
	//>>map[pc:5000]


	//削除
	delete(m2, "pc")
	fmt.Println(m2)
	//>>[]



	//宣言だけしてもメモリー上に存在しない==nilなので、追加できない
	//makeが必要
	/*
		var m3 map[string]int
		m3["pc"] = 5000
		fmt.Println(m3)
	*/


	
	//if文
	//宣言だけの場合nilになってしまう。
	//Nilが表示される
	var s []int
	if s == nil {
		fmt.Println("Nil")
	}
	//>>Nil

}

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?