Golang程序 将哈希集合的值作为一个数组来获取
在Go编程语言中,哈希集合包含一个哈希图,它以键:值对的形式存储数值,以便有效地执行程序。在这篇文章中,我们将使用两个例子来获得作为数组的哈希集合的值。在第一个例子中,我们将创建一个分片,并将地图中的字符串追加到该分片中,在第二个例子中,我们将对字符串进行散列,并将其存储在地图中。通过这种方式,我们将打印出数组。
语法
func make ([] type, size, capacity)
Go语言中的make函数用于创建一个数组/映射,它接受要创建的变量类型、其大小和容量作为参数
func append(slice, element_1, element_2…, element_N) []T
append函数用于向一个数组片断添加值。它需要一些参数。第一个参数是我们希望添加的数组,后面是要添加的值。然后,该函数返回包含所有值的数组的最终片断。
算法
- 创建一个包main,并在程序中声明fmt(格式包),其中main产生可执行代码,fmt帮助格式化输入和输出。
-
使用map literal创建一个hashmap,键和值都是字符串类型。
-
使用Golang的make函数制作一个与hashhmap的长度相似的空数组。
-
遍历hashmap直到其范围,并使用append方法追加map的值。
-
使用 fmt 包中的 Println 函数将数组的值打印到控制台,其中 ln 表示新行。
例1
在这个例子中,我们将用map字面创建一个hashmap,然后用数组的值来追加hashmap的值,make函数是Golang中的一个内置函数。数组的值将使用 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]]
总结
我们通过两个例子执行并编译了获取哈希集合值作为数组的程序。在第一个例子中,我们创建了一个分片,并在分片中添加了地图中的字符串;在第二个例子中,我们创建了一个地图,对字符串进行了散列,并在地图中添加了这些字符串,然后将地图值转换为数组。因此,该程序成功执行。