Go 語言程式遍歷字典元素


在 Go 語言中,字典類似於對映,它是一組鍵值對,每個值都有一個唯一的鍵。值可以是任何型別,鍵可以是任何類似的型別,例如字串或整數。我們可以使用內建的“make”函式構建一個空對映,然後新增、檢索或更新值。我們將在這裡使用兩個示例來遍歷字典的元素,其中第一個示例將使用迴圈遍歷元素,而下一個示例將使用切片遍歷元素。

方法 1:使用 for 迴圈和 range 關鍵字

此方法建立一個名為 dict_value 的字典,其中包含三個鍵值對,然後使用 for 迴圈和 range 關鍵字遍歷字典的元素。在每次迴圈迭代期間,當前元素的鍵和值將分配給相應的變數,然後將其輸出到控制檯。

語法

map[strings]

對映實現了一個無序的鍵值對集合。對映的鍵都是不同的,用於獲取它們對應的值。它們使用關鍵字“map”後跟方括號中的鍵型別和值型別來宣告,並且可以使用內建的“make”函式生成。方括號語法可用於新增、檢索或更新鍵值對。動態對映的大小可以根據需要增加或減少。在 Go 程式設計中,對映是一種常見的資料結構,用於說明鍵和值之間的關係。

演算法

  • 步驟 1 − 建立一個 package main 並宣告程式中的 fmt(格式化包)包,其中 main 生成可執行程式碼,而 fmt 幫助格式化輸入和輸出。

  • 步驟 2 − 建立一個 main 函式,並在該函式中使用 map 函式建立一個名為 dict_values 的字典,其中包含鍵值對。

  • 步驟 3 − 使用 range 關鍵字作為 for 迴圈的初始值來遍歷字典的項。

  • 步驟 4 − 在每次迴圈迭代期間,當前元素的鍵和值將分配給關聯的變數。

  • 步驟 5 − 當前元素的鍵和值將使用 fmt.Println() 函式輸出到控制檯,其中 ln 表示換行。

  • 步驟 6 − 直到字典中的每個元素都已處理,對每個元素重複步驟 3 和 4。

示例

在此示例中,我們將使用迴圈和 range 關鍵字以及它來遍歷字典的元素。讓我們看看它的程式碼是如何執行的。

package main
import "fmt"

func main() {
   // Define a dictionary
   dict_values := map[string]int{
      "Apple":   100,
      "Mangoes": 200,
      "Banana":  60,
   }
   fmt.Println("The dictionary is iterated as follows:")
   
   // Iterate through the elements of the dictionary
   for key, value := range dict_values {
      fmt.Println(key, value)
   }
}

輸出

The dictionary is iterated as follows:
Apple 100
Mangoes 200
Banana 60

方法 2:使用切片

在此方法中,我們首先使用 for 迴圈和 range 關鍵字對字典的鍵進行切片。然後,使用另一個 for 迴圈和索引運算子 [],我們遍歷鍵以獲取相應的值。最後,我們將每個元素的鍵和值輸出到控制檯。

語法

func append(slice, element_1, element_2…, element_N) []T

append 函式用於向陣列切片新增值。它需要多個引數。第一個引數是我們希望向其新增值的陣列,後跟要新增的值。然後,該函式返回包含所有值的陣列的最終切片。

演算法

  • 步驟 1 − 建立一個 package main 並宣告程式中的 fmt(格式化包)包,其中 main 生成可執行程式碼,而 fmt 幫助格式化輸入和輸出。

  • 步驟 2 − 建立一個函式 main,並在該函式中使用 map 函式建立一個名為 dict_values 的字典,其中包含鍵值對。

  • 步驟 3 − 要遍歷字典的鍵並生成鍵的切片,請使用 range 關鍵字初始化一個 for 迴圈。

  • 步驟 4 − 設定第二個 for 迴圈並開始遍歷新生成的切片中的鍵。

  • 步驟 5 − 利用索引運算子 [] 從字典中檢索切片中每個鍵的相關值。

  • 步驟 6 − 每個元素的鍵和值將使用 fmt.Println() 函式輸出到控制檯,其中 ln 表示換行。

  • 步驟 7 − 對於切片中的每個鍵,重複步驟 4 和 5,直到所有元素都已處理。

示例

在此示例中,切片用於遍歷字典的元素。讓我們透過程式碼瞭解一下。

package main
import "fmt"

func main() {
   // Define a dictionary
   dict_values := map[string]int{
      "Apple":   100,
      "Mangoes": 200,
      "Banana":  60,
   }

   // Get a slice of the keys from the dictionary
   slice := make([]string, 0, len(dict_values))
   for key := range dict_values {
      slice = append(slice, key)
   }
   fmt.Println("The dictionary is iterated as follows:")
   // Iterate through the keys and get the corresponding values
   for _, key := range slice {
      value := dict_values[key]
      fmt.Println(key, value)
   }
}

輸出

The dictionary is iterated as follows:
Apple 100
Mangoes 200
Banana 60

結論

我們使用兩種方法執行了遍歷字典元素的程式。在第一種方法中,我們使用了 for 迴圈和 range 關鍵字,在第二個示例中,我們使用了切片來遍歷字典的元素。

更新於: 2023年2月22日

1K+ 瀏覽量

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.