ホームページ > バックエンド開発 > Golang > Golangマップを変更する方法

Golangマップを変更する方法

青灯夜游
リリース: 2022-12-26 17:51:59
オリジナル
5518 人が閲覧しました

修正方法: 1. 「map["key"]=value」ステートメントを使用して要素を追加または更新します。「key」が存在する場合は要素を更新します。「key」が存在しない場合は、要素を追加します。 ; 2. delete() 関数を使用して、指定されたキーと値のペアをマップから削除します。構文は「delete(map, key name)」です。 3. 新しいマップ オブジェクトを再作成します。マップ内の要素の場合、構文は「var マップ名マップ[キータイプ]値タイプ」です。

Golangマップを変更する方法

このチュートリアルの動作環境: Windows 7 システム、GO バージョン 1.18、Dell G3 コンピューター。

Go 言語のマップは、要素のペア (ペア) の順序付けされていないコレクションである特別なデータ構造であり、ペアはキー (インデックス) と値 (値) に対応するため、この構造は連想配列または連想配列とも呼ばれます。辞書は、値をすばやく見つけることができる理想的な構造であり、キーが与えられると、対応する値をすぐに見つけることができます。

map このデータ構造は、他のプログラミング言語では辞書 (Python)、ハッシュ、HashTable などとも呼ばれます。

map の紹介

[1] Map は Go 言語に組み込まれた型で、キーと値のペアを関連付けます。キー key を通じて対応する値 value を取得します。他の言語のコレクションと同様
Golangマップを変更する方法

#[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)
}
ログイン後にコピー

#マップを作成する 3 つの方法##
 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)
}
ログイン後にコピー

マップを追加、削除、変更、確認する【1】追加と更新操作:

map["key"]= value

——>>キーが存在しない場合は追加されます。キーが存在する場合、キーは変更されます。

[2] 削除操作:

delete(map, "key")

、delete は組み込み関数です。キーが存在する場合は、キーを削除します。 k の y が存在しない場合、操作は実行されませんが、エラーは報告されません

[3] 操作のクリア: Golangマップを変更する方法

( 1) マップを削除したい場合 すべてのキーを一度に削除する特別な方法はありませんが、キーをたどって 1 つずつ削除することができます

(2) または

map = make( ...)

、新しいものを作成し、元のものを作成します ゴミになり、gc によってリサイクルされます

[4] 検索操作:

value, bool = map[key ]

value は戻り値、bool は返すか true か false

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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート