首頁  >  文章  >  後端開發  >  golang 數組轉map

golang 數組轉map

WBOY
WBOY原創
2023-05-15 09:32:061043瀏覽

Go語言中有時需要將陣列轉換為map類型,本文將介紹如何實作此功能。

陣列是一組依照一定順序排列的資料類型,而map則是一種以鍵值對形式儲存的資料類型。陣列可以使用下標存取元素,而map則需要使用鍵來存取值。在有些場景中,我們需要將陣列轉換為map類型,以便更方便地存取其中的元素。

例如,我們有一個長度為5的數組,儲存了5名學生的姓名和對應的成績。我們希望將其轉換為map類型,以便根據學生姓名快速找到其對應的成績。

首先,我們需要定義一個類型,儲存學生姓名和成績:

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},
}

然後,我們定義一個map類型,將學生姓名作為鍵,將學生成績作為值:

scores := make(map[string]int)

接著,我們遍歷數組中的每個元素,將學生姓名作為鍵,將學生成績作為值儲存到scores中:

for _, student := range students {
    scores[student.Name] = student.Score
}

最後,我們可以根據學生姓名在scores中找到對應的成績:

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

透過上述程式碼範例,我們可以看出將陣列轉換為map非常簡單。只需要定義好鍵值對類型,建立好map對象,遍歷數組,將元素填入map即可。

總結:

  • Go語言中可以透過遍歷陣列將其轉換為map類型。
  • 在轉換過程中需要定義好鍵值對型別和map物件。
  • 轉換後可以根據鍵快速找到對應的值。

以上是golang 數組轉map的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn