Golang 程序检查两个数组是否相等
在本教程中,我们将学习如何编写一个 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("第一个数组 Arr1 是:", arr1) arr2 := [4]int{5, 6, 7, 8} fmt.Println("第二个数组 Arr2 是:", arr2) arr3 := [4]int{1, 2, 3, 4} fmt.Println("第三个数组 Arr3 是:", arr3) fmt.Println() if arr1 == arr2 { fmt.Println("Arr1 和 Arr2 有相似的元素") } else { fmt.Println("Arr1 和 Arr2 没有相似的元素") } if arr1 == arr3 { fmt.Println("Arr1 和 Arr3 有相似的元素") } else { fmt.Println("Arr1 和 Arr3 没有相似元素") } if arr2 != arr3 { fmt.Println("Arr2 和 Arr3 没有相似元素") } else { fmt.Println("Arr2 和 Arr3 有相似元素") } }
输出
第一个数组 Arr1 为:[1 2 3 4] 第二个数组 Arr2 为:[5 6 7 8] 第三个数组 Arr3 为:[1 2 3 4] Arr1 和 Arr2 没有相似的元素 Arr1 和 Arr3 有相似的元素 Arr2 和 Arr3 没有相似的元素
使用 if 条件检查两个数组是否相等
上面的程序有一个缺点,如果我们提供两个具有相同元素但顺序不同的数组,它仍然将它们视为不相等。我们将尝试在这个程序中克服这个缺点。
算法
步骤 1 - 导入 fmt 包,它允许我们在屏幕上打印任何内容。
步骤 2 - 调用 main() 函数。这是我们程序的起点。
步骤 3 - 初始化两个名为 arr1 和 arr2 的整数数据类型数组。
步骤 4 - 将值存储到这两个数组并将它们打印在屏幕上。
步骤 5 - 使用两个 for 循环遍历两个数组,并使用 if 条件比较两个数组的当前元素的值。
步骤 6- 如果结果为,则增加 count 变量并中断循环。
步骤 7 - 重复此过程,直到检查完整个数组。
步骤 8 - 然后通过使用另一个 if 条件,我们将数组的长度与 count 变量进行比较。
步骤 9 − 如果长度相同,则意味着两个数组相同,我们需要在屏幕上打印此消息。否则,打印给定的两个数组不相同。
示例
package main import "fmt" func main() { arr1 := [4]int{1, 2, 3, 4} fmt.Println("第一个数组 Arr1 为:", arr1) arr2 := [4]int{2, 3, 1, 4} fmt.Println("第二个数组 Arr2 为:", 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("上述两个数组相同") } else { fmt.Println("上述两个数组不同") } }
输出
第一个数组 Arr1 为:[1 2 3 4] 第二个数组 Arr2 为:[2 3 1 4] 上面给出的两个数组相同
使用外部函数检查两个数组是否相等
现在让我们看看如何使用用户定义的函数检查两个数组是否相等
示例
package main import "fmt" // 函数用于检查给定数组是否相等 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("第一个数组 Arr1 为:", arr1) arr2 := []int{1, 2, 3, 4} fmt.Println("第二个数组 Arr2 为:", arr2) result := equalArray(arr1, arr2) fmt.Println() if result == true { fmt.Println("上面两个数组相等") } else { fmt.Println("上面两个数组不相等") } }
输出
第一个数组 Arr1 为:[1 2 3 4] 第二个数组 Arr2 为:[1 2 3 4] 上面两个数组相等
结论
我们已经成功编译并执行了一个 go 语言程序来检查两个数组是否相等,并附上示例。