Golang 用于在哈希集合中搜索项目
在本文中,我们将编写Golang程序来搜索哈希集合中的项目。哈希映射是哈希集合的一部分。在这里,我们将使用Golang的map来构建一个哈希映射,它是一组键值对。我们将使用两个示例来执行此程序。
语法
func range(variable)
range函数用于迭代任何数据类型。使用这个函数,需要首先写上range关键字,然后是要迭代的数据类型,结果是循环将迭代到变量的最后一个元素。
使用exists关键字
在这个方法中,我们将使用exists来检查一个特定的项是否存在于映射中。在这里,我们将使用哈希图的索引来检查key4是否存在于映射中的任何值。
步骤
- 步骤1 - 创建一个main包,声明fmt(格式包)包,在程序中,main产生可执行代码,fmt帮助格式化输入和输出。
-
步骤2 - 创建一个main函数,在该函数中使用映射字面量创建一个哈希图,其中键的类型是字符串,值的类型是整型。
-
步骤3 - 为哈希图中的每个键分配一个值。
-
步骤4 - 然后,使用exists关键字在哈希图中搜索任何特定的项,这里我们正在搜索key4。
-
步骤5 - 如果键存在于哈希图中,则将其值使用fmt包中的Println()函数打印到控制台上。
-
步骤6 - 如果哈希图中不存在键,则类似与步骤5中的打印”该项不存在于哈希集合中”。
示例
以下示例演示了使用exists关键字在哈希集合中搜索项的Golang程序
package main
import "fmt"
func main() {
hashmap := map[string]int{
"key1": 10,
"key2": 20,
"key3": 30,
"key4": 40,
}
value, exists := hashmap["key4"]
if exists {
fmt.Println("The value of 'key4' is:", value)
} else {
fmt.Println("The item does not exist in the hash collection.")
}
}
输出
The value of 'key4' is: 40
使用found标志
在这个示例中,我们将创建一个类似于上一个示例中创建的哈希映射,但是这里我们将使用一个found标志,并将其默认值设置为false。
步骤
- 步骤1 - 创建一个main包,并在程序中声明fmt(格式化包)包,其中main产生可执行代码,fmt帮助格式化输入和输出。
-
步骤2 - 创建一个main函数,在这个特定的函数中创建一个类似于上一个示例中的哈希映射,并给键赋值。
-
步骤3 - 在这一步中,创建一个名为searchkey的变量,并将要搜索的特定键存储在变量中。在这个示例中,我们使用了key4。
-
步骤4 - 创建一个名为found的标志,并将其初始值设置为false。
-
步骤5 - 创建另一个int类型的变量value,用于存储键的值。
-
步骤6 - 然后,在哈希映射上运行一个循环,在每次迭代中检查searchkey和键是否相等。
-
步骤7 - 如果它们相等,将found设置为true,并将键的原始值赋给value变量。
-
步骤8 - 如果找到了键,则中断循环。
-
步骤9 - 循环结束后,检查found的值,如果found为true,则使用fmt包的Println函数在控制台上打印键的值。
-
步骤10 - 如果found=false,则打印一个在哈希集合中未找到键的语句。
示例
下面的示例演示了使用found标志在哈希集合中搜索项的Golang程序。
package main
import "fmt"
func main() {
hashmap := map[string]int{
"key1": 10,
"key2": 20,
"key3": 30,
"key4": 40,
}
searchKey := "key4"
found := false
var value int
for key, val := range hashmap {
if key == searchKey {
found = true
value = val
break
}
}
if found {
fmt.Println("The value of", searchKey, "is", value)
} else {
fmt.Println(searchKey, "not found in the hash collection.")
}
}
输出
The value of key4 is 40
使用格式标识符
在这个方法中,我们将编写一个Go程序,使用格式标识符在哈希集合中搜索一个项目。
步骤
- 步骤1 - 在程序中创建package main,并声明fmt(格式化包)包,其中main生成可执行代码,而fmt帮助格式化输入和输出。
-
步骤2 - 在main函数中创建一个map,其中键的类型为字符串,值的类型为整数。
-
步骤3 - 将键设置为map中的一个键,以判断它是否存在于map中。
-
步骤4 - 使用索引检查map中的键,并使用一个found标志。
-
步骤5 - 然后,使用if-else条件语句检查found是否为真,如果为真,则说明键元素存在于map中。
-
步骤6 - 但是,如果found为假,则该键不存在于map中。
-
步骤7 - 使用格式标识符将键及其值打印在控制台上。
示例
以下示例演示如何使用格式标识符在哈希集合中搜索项目的Golang程序的开发。
package main
import "fmt"
func main() {
values := map[string]int{
"pen": 10,
"pencil": 20,
"scale": 30,
}
key := "pen"
value, found := values[key]
if found {
fmt.Printf("Found %s with value %d\n", key, value)
} else {
fmt.Printf("%s not found\n", key)
}
}
输出
Found pen with value 10
结论
我们使用三个不同的示例执行了在哈希集合中搜索项目的程序。在第一个示例中,我们使用exists关键字在哈希映射中搜索项目,在第二个示例中,我们使用found标志来执行操作,在第三个示例中,我们使用格式标识符在地图中搜索键。这两个示例都给出了期望的输出。