修正方法: 1. 「map["key"]=value」ステートメントを使用して要素を追加または更新します。「key」が存在する場合は要素を更新します。「key」が存在しない場合は、要素を追加します。 ; 2. delete() 関数を使用して、指定されたキーと値のペアをマップから削除します。構文は「delete(map, key name)」です。 3. 新しいマップ オブジェクトを再作成します。マップ内の要素の場合、構文は「var マップ名マップ[キータイプ]値タイプ」です。
このチュートリアルの動作環境: Windows 7 システム、GO バージョン 1.18、Dell G3 コンピューター。
Go 言語のマップは、要素のペア (ペア) の順序付けされていないコレクションである特別なデータ構造であり、ペアはキー (インデックス) と値 (値) に対応するため、この構造は連想配列または連想配列とも呼ばれます。辞書は、値をすばやく見つけることができる理想的な構造であり、キーが与えられると、対応する値をすぐに見つけることができます。
map このデータ構造は、他のプログラミング言語では辞書 (Python)、ハッシュ、HashTable などとも呼ばれます。
[1] Map は Go 言語に組み込まれた型で、キーと値のペアを関連付けます。キー key を通じて対応する値 value を取得します。他の言語のコレクションと同様
#[2]基本構文
var map变量名 map[keytype]valuetype
PS: キーと値のタイプ: bool、number、string、pointer、channel、および can be 以前の型のインターフェイス、構造体、配列のみが含まれます
PS: キーは通常 int、文字列型、値は通常数値 (整数、浮動小数点数)、文字列、マップ、構造体です
PS: キー: スライス、マップ、関数は使用できません
[3] コード:
マップの特徴:
(1) Make
は使用前に作成する必要があります。マップ コレクション (2) ) マップのキーと値は順序付けされていません
(3) キーを繰り返すことはできません。繰り返した場合、後の値が前の値を置き換えます
(4) 値は繰り返すことができます
package main import "fmt" func main(){ //定义map变量: var a map[int]string //只声明map内存是没有分配空间 //必须通过make函数进行初始化,才会分配空间: a = make(map[int]string,10) //map可以存放10个键值对 //将键值对存入map中: a[20095452] = "张三" a[20095387] = "李四" a[20097291] = "王五" a[20095387] = "朱六" a[20096699] = "张三" //输出集合 fmt.Println(a) }
package main import "fmt" func main(){ //方式1: //定义map变量: var a map[int]string //只声明map内存是没有分配空间 //必须通过make函数进行初始化,才会分配空间: a = make(map[int]string,10) //map可以存放10个键值对 //将键值对存入map中: a[20095452] = "张三" a[20095387] = "李四" //输出集合 fmt.Println(a) //方式2: b := make(map[int]string) b[20095452] = "张三" b[20095387] = "李四" fmt.Println(b) //方式3: c := map[int]string{ 20095452 : "张三", 20098765 : "李四", } c[20095387] = "王五" fmt.Println(c) }
map["key"]= value
——>>キーが存在しない場合は追加されます。キーが存在する場合、キーは変更されます。[2] 削除操作:
delete(map, "key")
、delete は組み込み関数です。キーが存在する場合は、キーを削除します。 k の y が存在しない場合、操作は実行されませんが、エラーは報告されません[3] 操作のクリア:
( 1) マップを削除したい場合 すべてのキーを一度に削除する特別な方法はありませんが、キーをたどって 1 つずつ削除することができます (2) またはmap = make( ...)
、新しいものを作成し、元のものを作成します ゴミになり、gc によってリサイクルされます[4] 検索操作:
package main import "fmt" func main(){ //定义map b := make(map[int]string) //增加: b[20095452] = "张三" b[20095387] = "李四" //修改: b[20095452] = "王五" //删除: delete(b,20095387) delete(b,20089546) fmt.Println(b) //查找: value,flag := b[200] fmt.Println(value) fmt.Println(flag) }[5] 長さを取得します: len function[6] トラバース: for-range
package main import "fmt" func main(){ //定义map b := make(map[int]string) //增加: b[20095452] = "张三" b[20095387] = "李四" b[20098833] = "王五" //获取长度: fmt.Println(len(b)) //遍历: for k,v := range b { fmt.Printf("key为:%v value为%v \t",k,v) } fmt.Println("---------------------------") //加深难度: a := make(map[string]map[int]string) //赋值: a["班级1"] = make(map[int]string,3) a["班级1"][20096677] = "露露" a["班级1"][20098833] = "丽丽" a["班级1"][20097722] = "菲菲" a["班级2"] = make(map[int]string,3) a["班级2"][20089911] = "小明" a["班级2"][20085533] = "小龙" a["班级2"][20087244] = "小飞" for k1,v1:= range a { fmt.Println(k1) for k2,v2:= range v1{ fmt.Printf("学生学号为:%v 学生姓名为%v \t",k2,v2) } fmt.Println() } }[関連する推奨事項:
Go ビデオ チュートリアル
、プログラミング教育]
以上がGolangマップを変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。