Go言語では配列をマップ型に変換する必要がある場合がありますが、この記事ではその実装方法を紹介します。
配列は特定の順序で配置されたデータ型のセットであり、マップはキーと値のペアの形式で格納されるデータ型です。配列は添字を使用して要素にアクセスできますが、マップでは値にアクセスするためにキーが必要です。一部のシナリオでは、要素にアクセスしやすくするために、配列をマップ型に変換する必要があります。
たとえば、長さ 5 の配列があり、5 人の生徒の名前と対応する成績が格納されています。これをマップ タイプに変換して、生徒の名前に基づいて対応する学年をすぐに見つけられるようにしたいと考えています。
最初に、学生の名前と成績を格納する型を定義する必要があります:
type Student struct { Name string Score int }
次に、5 人の学生の名前と成績を格納するために長さ 5 の配列を作成します:
students := [5]Student{ {Name: "张三", Score: 90}, {Name: "李四", Score: 85}, {Name: "王五", Score: 78}, {Name: "赵六", Score: 92}, {Name: "钱七", Score: 88}, }
次に、学生名をキーとして使用し、学生の成績を値として使用して、マップ タイプを定義します。
scores := make(map[string]int)
次に、学生名を使用して、配列内の各要素を走査します。をキーとして、生徒を指定します。成績は値としてスコアに保存されます:
for _, student := range students { scores[student.Name] = student.Score }
最後に、生徒の名前に基づいて、スコアに対応する成績を見つけることができます:
score, ok := scores["张三"] if ok { fmt.Printf("张三的成绩为:%d ", score) } else { fmt.Println("未找到张三的成绩") }
完全なコードは次のとおりです。次のようになります。
package main import "fmt" type Student struct { Name string Score int } func main() { students := [5]Student{ {Name: "张三", Score: 90}, {Name: "李四", Score: 85}, {Name: "王五", Score: 78}, {Name: "赵六", Score: 92}, {Name: "钱七", Score: 88}, } scores := make(map[string]int) for _, student := range students { scores[student.Name] = student.Score } score, ok := scores["张三"] if ok { fmt.Printf("张三的成绩为:%d ", score) } else { fmt.Println("未找到张三的成绩") } }
出力 結果は次のようになります。
张三的成绩为:90
上記のコード例を通して、配列からマップへの変換が非常に簡単であることがわかります。必要なのは、キーと値のペアのタイプを定義し、マップ オブジェクトを作成し、配列を走査し、マップに要素を入力することだけです。
概要:
以上がgolang 配列をマップするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。