Go語言程式:將雜湊集合的值作為陣列獲取


在 Go 程式語言中,雜湊集合包含一個雜湊對映,它以鍵值對的形式儲存值,以提高程式的執行效率。本文將透過兩個示例來演示如何將雜湊集合的值作為陣列獲取。在第一個示例中,我們將建立一個切片並將對映的字串追加到該切片中;在第二個示例中,我們將對字串進行雜湊處理,並將其儲存在對映中。透過這種方式,我們將列印陣列。

語法

func make ([] type, size, capacity)

Go 語言中的 make 函式用於建立陣列/對映,它接受要建立的變數型別、大小和容量作為引數。

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

append 函式用於向陣列切片新增值。它接受多個引數。第一個引數是要向其中新增值的陣列,後面跟著要新增的值。然後,該函式返回包含所有值的最終陣列切片。

演算法

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

  • 使用對映字面量建立一個雜湊對映,其鍵和值都是字串型別。

  • 使用 Go 語言的 make 函式建立一個與雜湊對映長度相同的空陣列。

  • 迭代雜湊對映直到其範圍,並使用 append 方法追加對映的值。

  • 使用 fmt 包中的 Println 函式在控制檯上列印陣列值,其中 ln 表示換行。

示例 1

在這個示例中,我們將使用對映字面量建立一個雜湊對映,然後建立一個數組值,其中雜湊對映的值將使用 Go 語言的內建函式 make 進行追加。陣列值將使用 fmt 包在控制檯上列印。讓我們來看一下這個示例來了解工作過程。

package main

import (
   "fmt"
)
   
func main() {
   hashmap := map[string]string{ //create a map 
      "item1": "value1",
      "item2": "value2",
      "item3": "value3",
   }
   
   values := make([]string, 0, len(hashmap))
   
   for _, v := range hashmap {
      values = append(values, v) //append the map strings in the slice
   }
   fmt.Println("The hash collection value as an array is printed as:")
   fmt.Println(values) //print the slice
}

輸出

The hash collection value as an array is printed as:
[value1 value2 value3]

示例 2

在這個示例中,我們將建立一個字串切片,然後我們將迭代這些字串,對它們進行雜湊處理,並將它們儲存在新對映中。對映值將轉換為陣列,並使用 fmt 包在控制檯上列印。讓我們透過程式碼和演算法來了解執行過程。

package main

import (
   "crypto/sha256"
   "fmt"
)

func main() {
   
   // Create a slice of strings to hash
   data_val := []string{"a", "b", "c", "d"}
   
   // Create a map to store the hash values
   hashes := make(map[string][32]byte)
   
   //hash the string and store it inside the map
   for _, str := range data_val {
      hash := sha256.Sum256([]byte(str))
      hashes[str] = hash
   }
   
   // Convert the map values to an array and print it
   var arr [][32]byte
   for _, value := range hashes {
      arr = append(arr, value)
   }
   fmt.Println(arr)
}

輸出

[[202 151 129 18 202 27 189 202 250 194 49 179 154 35 220 77 167 134 239 248 20 124 78 114 185 128 119 133 175 238 72 187] [62 35 232 22 0 57 89 74 51 137 79 101 100 225 177 52 139 189 122 0 136 212 44 74 203 115 238 174 213 156 0 157] [46 125 44 3 169 80 122 226 101 236 245 181 53 104 133 165 51 147 162 2 157 36 19 148 153 114 101 161 162 90 239 198] [24 172 62 115 67 240 22 137 12 81 14 147 249 53 38 17 105 217 227 245 101 67 100 41 131 15 175 9 52 244 248 228]]

結論

我們使用這兩個示例執行並編譯了將雜湊集合的值作為陣列獲取的程式。在第一個示例中,我們建立了一個切片並將對映的字串新增到切片中;在第二個示例中,我們建立了一個對映,對字串進行雜湊處理並將這些字串新增到對映中,然後將對映值轉換為陣列。因此,程式成功執行。

更新於:2023年3月27日

瀏覽量:691

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.