免責事項:この記事はブロガーのオリジナルの記事、転載記述のリンクを追加する必要があります。https://blog.csdn.net/makenothing/article/details/89786679
地図
1.1マップ
地図はgolang、キーと値のデータ型が一緒に拘束されることにあります。達成するためにハッシュを使用して、キー値、マップに対応することによって得ることができる、あなたはすぐに対応するキーの値を見つけることができます。タイプは表します。map[keyType][valueType]
例えば:age' := make(map[string]int)
何の意味せず、マップを初期化するために、内蔵のメイク機能を使用して、そして唯一の理由は、マップはnilとして、初期マップを作成し、要素を追加するために使用することができ、それは実行時エラーになります。
package main
import (
"fmt"
)
func main() {
var agemap[string]int
if age== nil {
fmt.Println("map is nil.")
age= make(map[string]int)
}
}
空に1.2地図
マップをgolangは空にするための組み込み関数、空のマップ、その上に直接初期化の明確なマップを提供していません。
年齢データの特定の収集については、明確な方法が再び初期化されます。age = make(map[string]int)
後者は、もはやマップを使用しない場合は、あなたが直接することができます:age= nil
データを消去するという目的を達成するために、しかし、あなたが再利用する必要がある場合は、初期化しなければならない、またはマップnilに何かを追加することはできません。
1.3地図参照のプロパティ
スライスと同じように、マップが参照型です。マップは同じ内部データ構造に新しい変数、彼らはすべてのポイントに割り当てられている場合。また別に反映されるため、変更
package main
import (
"fmt"
)
func main() {
age := map[string]int{
"steve": 20,
"jamie": 80,
}
fmt.Println("Ori age", age)
newage:= age
newage["steve"] = 18
fmt.Println("age changed", age)
}
Ori age map[steve:20 jamie:80]
age changed map[steve:18 jamie:80]
2.1-Dマップ
二次元マップ初期化2.1.1
2つのステップが初期化するのに必要とされます
yourMap := make(map[string]map[string]int)
for i, _ := range yourMap {
yourMap[i] = make(map[string]int)
}
クリアの2.1.2 2次元マップ
二维以及多维map的清空同一维map的原理是相同的,不再赘述。