Go语言程序:检查两个数组是否相等


在本教程中,我们将学习编写一个 Go 语言程序来检查两个数组是否相等。

使用等号运算符检查两个数组是否相等

以下代码演示了如何使用等号运算符检查两个数组是否相等。

算法

步骤 1 − 首先,我们需要导入 fmt 包,以便在屏幕上打印任何内容。

步骤 2 − 然后我们调用 main() 函数。

步骤 3 − 然后我们初始化三个整数类型的数组 arr1、arr2 和 arr3,并将值存储到它们中。

步骤 4 − 使用 fmt.Println() 函数在屏幕上打印这些数组。

步骤 5 − 我们使用 if 条件同时比较任意两个数组,并检查它们是否相同。

步骤 6 − 如果选择的两个数组相同,则需要打印这两个数组相同的消息;否则,打印给定数组不相等。

步骤 7 − 通过逐一比较所有三个数组来检查。

示例

Open Compiler
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 − 如果长度相同,则表示这两个数组相同,我们需要在屏幕上打印此消息。否则,打印给定的两个数组不相同。

示例

Open Compiler
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.

使用外部函数检查两个数组是否相等

现在让我们看看如何使用用户定义的函数检查两个数组是否相等。

示例

Open Compiler
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 语言程序,用于检查两个数组是否相等,并附带示例。

更新于:2022年12月28日

2K+ 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告