Go语言程序:检查两个数组是否相等
在本教程中,我们将学习编写一个 Go 语言程序来检查两个数组是否相等。
使用等号运算符检查两个数组是否相等
以下代码演示了如何使用等号运算符检查两个数组是否相等。
算法
步骤 1 − 首先,我们需要导入 fmt 包,以便在屏幕上打印任何内容。
步骤 2 − 然后我们调用 main() 函数。
步骤 3 − 然后我们初始化三个整数类型的数组 arr1、arr2 和 arr3,并将值存储到它们中。
步骤 4 − 使用 fmt.Println() 函数在屏幕上打印这些数组。
步骤 5 − 我们使用 if 条件同时比较任意两个数组,并检查它们是否相同。
步骤 6 − 如果选择的两个数组相同,则需要打印这两个数组相同的消息;否则,打印给定数组不相等。
步骤 7 − 通过逐一比较所有三个数组来检查。
示例
package main import "fmt" func main() { arr1 := [4]int{1, 2, 3, 4} fmt.Println("The first array Arr1 is:", arr1) arr2 := [4]int{5, 6, 7, 8} fmt.Println("The second array Arr2 is:", arr2) arr3 := [4]int{1, 2, 3, 4} fmt.Println("The third array Arr3 is:", arr3) fmt.Println() if arr1 == arr2 { fmt.Println("Arr1 and Arr2 have the similar elements") } else { fmt.Println("Arr1 and Arr2 do not have the similar elements") } if arr1 == arr3 { fmt.Println("Arr1 and Arr3 have the similar elements") } else { fmt.Println("Arr1 and Arr3 do not have the similar elements") } if arr2 != arr3 { fmt.Println("Arr2 and Arr3 do not have the similar elements") } else { fmt.Println("Arr2 and Arr3 have the similar elements") } }
输出
The first array Arr1 is: [1 2 3 4] The second array Arr2 is: [5 6 7 8] The third array Arr3 is: [1 2 3 4] Arr1 and Arr2 do not have the similar elements Arr1 and Arr3 have the similar elements Arr2 and Arr3 do not have the similar elements
使用 if 条件检查两个数组是否相等
上述程序有一个缺点:如果我们提供两个具有相同元素但顺序不同的数组,它仍然将它们视为不相等。我们将在本程序中尝试克服这个缺点。
算法
步骤 1 − 导入 fmt 包,以便在屏幕上打印任何内容。
步骤 2 − 调用 main() 函数。这是我们程序的起点。
步骤 3 − 初始化两个名为 arr1 和 arr2 的整数类型数组。
步骤 4 − 将值存储到这两个数组中,并在屏幕上打印它们。
步骤 5 − 使用两个 for 循环迭代这两个数组,并使用 if 条件比较两个数组当前元素的值。
步骤 6 − 如果值相同,则递增计数变量并中断循环。
步骤 7 − 重复此过程,直到检查完整个数组。
步骤 8 − 然后,使用另一个 if 条件,我们将数组的长度与计数变量进行比较。
步骤 9 − 如果长度相同,则表示这两个数组相同,我们需要在屏幕上打印此消息。否则,打印给定的两个数组不相同。
示例
package main import "fmt" func main() { arr1 := [4]int{1, 2, 3, 4} fmt.Println("The first array Arr1 is:", arr1) arr2 := [4]int{2, 3, 1, 4} fmt.Println("The second array Arr2 is:", arr2) fmt.Println() var count int = 0 for i := 0; i < len(arr1); i++ { for j := 0; j < len(arr2); j++ { if arr1[i] == arr2[j] { count++ break } } } if (count == len(arr1)) && (count == len(arr2)) { fmt.Println("The above two arrays given are same") } else { fmt.Println("The above two arrays are different") } }
输出
The first array Arr1 is: [1 2 3 4] The second array Arr2 is: [2 3 1 4] The above two arrays given are same
Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.
使用外部函数检查两个数组是否相等
现在让我们看看如何使用用户定义的函数检查两个数组是否相等。
示例
package main import "fmt" // function to check if given arrays are equal or not func equalArray(a []int, b []int) bool { if len(a) != len(b) { return false } for i, v := range a { if v != b[i] { return false } } return true } func main() { arr1 := []int{1, 2, 3, 4} fmt.Println("The first array Arr1 is:", arr1) arr2 := []int{1, 2, 3, 4} fmt.Println("The second array Arr2 is:", arr2) result := equalArray(arr1, arr2) fmt.Println() if result == true { fmt.Println("The above two arrays are equal") } else { fmt.Println("The above two arrays are not equal") } }
输出
The first array Arr1 is: [1 2 3 4] The second array Arr2 is: [1 2 3 4] The above two arrays are equal
结论
我们已经成功编译并执行了一个 Go 语言程序,用于检查两个数组是否相等,并附带示例。