Golang 检查数组是否包含给定值
在本教程中,我们将学习如何检查给定值是否存在于 Go 语言数组中。我们将使用两种方法。
方法1:在主函数中直接使用for循环
我们将使用for循环遍历Go语言数组的元素,并使用相等运算符检查值的相等性。如果值匹配,则可以停止迭代并称该给定值存在于数组中。
方法2:使用函数
Golang没有针对此的预定义库函数方法,因此我们需要创建自己的函数。
示例1:Golang 程序检查数组是否包含特定值。
语法
var array_name [length] Type
在Golang中,要初始化一个数组,我们需要指定三个东西。第一个是数组的名称,接着是它的大小,然后是我们希望存储在其中的值的数据类型。
例如,var number[10] int – 这将初始化一个名为number的整数数据类型的数组,并将10个内存分配给它的连续内存位置来存储值。
步骤
- 步骤1 - 导入包 fmt 。
-
步骤2 - 开始函数 main() 。
-
步骤3 - 声明并初始化一个数组,一个整数数据类型的变量和一个布尔变量。
-
步骤4 - 使用for循环遍历数组。
-
步骤5 - 使用 fmt.Printf() 在屏幕上打印结果。
示例
// GOLANG PROGRAM TO CHECK IF AN ARRAY CONTAINS A GIVEN VALUE
package main
import "fmt"
// fmt package provides the function to print anything
func main() {
// initialize an array and store value in it
array := [5]int {1, 2, 3, 4, 5}
// initialize a variable of data type int
var element int = 4
fmt.Println("The element to check = ",element)
// initialize a datatype of Boolean and define it to false
var result bool = false
// iterate over the array using for loop and break if values match
for i := 0;
i < len(array);
i++ {
// checking if the array contains the given value
if array[i] == element {
// changing the boolean variable
result = true
break
}
}
// printing the final result
if result {
fmt.Println("Array", array, "Contains the given Value", element)
} else {
fmt.Println("Array", array, "does not Contains the given Value", element)
}
}
输出
The element to check = 4
Array [1 2 3 4 5] Contains the given Value 4
代码描述
1. 首先,我们导入fmt包,该包允许我们打印任何内容。
2. 然后,我们开始main()函数。
3. 初始化一个int类型的数组,并给它赋值。
4. 也初始化一个变量来存储我们希望检查的整数值。
5. 初始化一个布尔变量,并开始时将其设为false。
6. 迭代数组,并使用if条件来检查是否包含上面初始化的变量。
7. 如果包含该变量,则翻转布尔变量并跳出循环。
8. 在屏幕上打印结果。
示例2:使用函数检查数组是否包含特定元素的Golang程序
语法
func function_name([parameters]) [return_types]{
Body of the function
}
步骤
- 步骤 1 - 导入包 fmt
-
步骤 2 - 创建函数 isAvailable()
-
步骤 3 - 启动函数 main()
-
步骤 4 - 初始化字符串数组
-
步骤 5 - 调用函数 isAvailable()
-
步骤 6 - 使用 fmt.Printf() 在屏幕上打印结果
示例
package main
import "fmt"
// defining the function with a parameter of string
// type and have a return type bool
func isAvailable(alpha []string, str string) bool {
// iterate using the for loop
for i := 0;
i < len(alpha);
i++ {
// check
if alpha[i] == str {
// return true
return true
}
}
return false
}
// Start the function main()
func main() {
// Declare and initialize string datatype
alpha := []string {"Akshay", "Emma", "David", "Akhil"}
fmt.Println("Given List = ",alpha)
// initializing a variable of data type string
var toCheck string = "Akhil"
fmt.Println("Value to search = ",toCheck)
// calling the isAvailable() function
result := isAvailable(alpha, toCheck)
if result {
fmt.Println(toCheck, "is present in the array of strings", alpha)
}
}
输出
Given List = [Akshay Emma David Akhil]
Value to search = Akhil
Akhil is present in the array of strings [Akshay Emma David Akhil]
代码描述
1. 首先,我们需要导入fmt包,以便在屏幕上打印任何内容。
2. 接下来,我们需要创建一个函数来处理逻辑。
3. 我们创建了一个名为isAvailable()的函数,该函数接受两个字符串参数,一个是字符串数组,另一个是我们希望检查的字符串。该函数返回一个布尔值,即true或false。
4. 在此循环中,我们使用for循环遍历数组。
5. 然后,我们使用if条件判断来检查可用字符串是否存在于数组中。
6. 如果存在,则返回true。否则,该函数将返回false。
7. 开始main()函数。
8. 初始化一个字符串数组并为其赋值。
9. 初始化一个名为toCheck的字符串变量,该变量将包含要检查的值。
10. 调用isAvailable()函数,并将字符串数组和toCheck变量作为参数传递给它。
11. 将函数返回的值存储在一个单独的变量中。
12. 在屏幕上打印结果。
结论
我们成功编译并执行了Golang程序代码,以检查元素是否存在于数组中。我们使用了两种不同的方法来展示这一点。第一种是直接方法,在其中使用for循环来遍历数组。
在第二种方法中,我们创建了一个函数,并从主函数调用它来进行相同的检查。