キーと値のマップはまた、連想配列、またはフィールドと呼ばれるデータ構造です。他のプログラミング言語の類似したセットは、プログラミングは、多くの場合に使用されています。
map文:
基本的な構文:
VARマップ変数名マップ[キータイプ]値型
キーはどのような型であってもよいですか?
マップをgolang、キーは、そのようなBOOL、数値、文字列、ポインタ、チャネルなど、さまざまなタイプのかもしれフロントインターフェース構造のほんの数タイプ、アレイを含んでいてもよいです
通常はint型、文字列
注意:スライスは、マップがうまく機能しないことができ、これらは==で決定することができないので、
値型は何型であってもよいですか?
値型と本質的に同じタイプとキー
典型的には:数(整数、浮動小数点)、文字列、マップ、構造体
map文例:
マップ[文字列]文字列VAR
VARマップ[文字列] int型
VARマップの[int]は、文字列
VARマップ[文字列]マップ[文字列]文字列
注意:ステートメントがメモリを割り当てられていない、初期化が割り当てられたメモリの割り当てと使用に作る必要があります。
FUNCのメイン(){
//文や注意事項マップ
VARマップ[文字列]文字列
//、作る前にマップを使用する役割がマップデータ空間に割り当てられているようにする必要があり
、A =作る(マップ[文字列]文字列、10)
A [「No1の"] ="ソン"
[" NO2 "] ="呉"
[" No1の"] ="呉"
[" NO 3 "] ="呉」
fmt.Println(A)
}
コードの上記の説明:
1)を確認するために、使用前にマップ
2)キーを作る繰り返し、繰り返した場合、最後のキーと値の場所は勝つことができません
3)値が同じであるマップ。
4)キーと値のマップが無秩序です。
FUNCメイク
FUNC(タイプ、サイズIntegerType)を入力します
機能が割り当てとターゲットチャンネルの内蔵型スライス、マッピング、または(単に)を初期化します。新値ではなく、最初の引数の型と同じです。異なる、単にむしろそれへのポインタよりも、同じ種類とそれらのパラメータを返します。具体的な結果は、特定のタイプによって異なります。
スライス:その大きさは、長さを指定します。その容量は、スライスの長さに等しいです。異なる容量を指定するために使用される第2の整数の引数、それはその長さよりも小さく、したがっててはならないが([] INT、0、 10) の容量の0、10スライスの長さが割り当てられます。
マップ:初期サイズの分布を作成しますが依存しますが、マッピングの長さがゼロになります。サイズを省略することができ、この場合には、小さな初期サイズが割り当てられます。
チャネル:指定されたキャッシュバッファの容量に応じてチャネルの初期化。サイズがゼロまたは省略し、キャッシュされていないチャネルである場合。
次のマップを使用するにはいくつかの方法がありますが、私たちはプレゼンテーションでした。
1)モード1
//宣言=ゼロ時間マップ
VARの都市[文字列]文字列マッピング
//メイク(地図[文字列]文字列、10)が空間マップ割り当てられている
都市は、メイク=(地図[文字列]文字列、10)
2)実施例2
メイク直接//宣言
VAR =都市メイク(地図[文字列]文字列)
FUNCのメイン(){
都市:=(マップ[文字列]文字列)を作る
都市[ "NO1"] = "北京"
都市[ "NO 2"] = "天津"
都市[ "NO 3"] = "上海"
fmt.Println(都市)
}
3)モード3
//直接割り当て宣言
都市地図[文字列]文字列=マップ[文字列] {ストリングVAR
:「成都」「No4のを」
}
都市[ "NO1"] = "北京"
メインFUNC(){
VAR都市=マップ[ストリング]ストリング{ "NO4": "成都"}
都市[ "NO1"] = "北京"
fmt.Println(都市)
}
種類も導出するために使用することができます。
FUNCのメイン(){
都市:=マップ[ストリング]ストリング{ "NO4": "成都"}
都市[ "NO1"] = "北京"
fmt.Println(都市)
}
ワークショップ:キーと値の提示はケース・マップの値であり、
例えば:私たちは3つの生徒の情報を格納する必要が、各学生は名前と性別の情報を持っています
思路:マップ[文字列]マップ[文字列]文字列
ケース:
FUNCのメイン(){
studentMap:=作る(地図[ストリング]地図[文字列]文字列、10)
studentMap [ "stu01"] =作る(地図[文字列]文字列、3)
studentMap [ "stu01"] [ "名" = "トム"
studentMap [ "stu01"] [ "セックス"] = "男"
studentMap [ "stu01"] [ "アドレス"] = "北京长安街"
studentMap [ "stu02"] =作る (マップ[文字列]文字列を、3)// この文は小さくすることはできません
studentMap [ "stu02"] [ "名前"] = "メアリー"
studentMap [ "stu02"] [ "セックス"] = "女性"
studentMap [ "stu02"] [ "アドレス"] = "北京東サブレ"
fmt.Println(studentMap [ "stu01"])
fmt.Println(studentMap [ "stu02"] [ "アドレス"])
}