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]]
结论
我们使用这两个示例执行并编译了将哈希集合的值作为数组获取的程序。在第一个示例中,我们创建了一个切片并将映射的字符串添加到切片中;在第二个示例中,我们创建了一个映射,对字符串进行哈希处理并将这些字符串添加到映射中,然后将映射值转换为数组。因此,程序成功执行。