在go语言中,可以使用比较运算符“==”或“!=”来进行数组比较,判断两个数组是否相等;只有当两个数组的所有元素都是相等的时候数组才是相等的,不能比较两个类型不同的数组,否则程序将无法完成编译。

本教程操作环境:windows10系统、GO 1.11.2、Dell G3电脑。

比较两个数组是否相等

如果两个数组类型相同(包括数组的长度,数组中元素的类型)的情况下,我们可以直接通过较运算符(==和!=)来判断两个数组是否相等,只有当两个数组的所有元素都是相等的时候数组才是相等的,不能比较两个类型不同的数组,否则程序将无法完成编译。

package main
import (
	"fmt"
)
func main() {
	//通过 == 来比较数组
	arr1 := [3]string{"Hello", "php中文网", "PHP"}
	arr2 := [3]string{"Hello", "php中文网", "PHP"}
	fmt.Println("arr1 == arr2 ", arr1 == arr2)
}

输出:

arr1 == arr2  true

定义了两个都含有三个元素的数组,数组的元素都相同,接着,我们使用 == 比较两个数组,结果返回了 true,即这两个数组相等。

数组长度不同比较

数组长度不同,不可以通过 ==和!= 来比较数组

package main
import (
"fmt"
)
func main() {
//数组长度不同,不可以通过 == 来比较数组
arr1 := [3]string{"Hello", "php中文网", "hi"}
arr2 := [2]string{"Hello", "php中文网"}
fmt.Println("arr1 == arr2 ", arr1 == arr2)
}

程序运行后,控制台输出如下:

# command-line-arguments
./main.go:9:35: invalid operation: arr1 == arr2 (mismatched types [3]string and [2]string)

我们定义的数组 arr1 有三个元素,数组 arr2 有两个元素,接着,我们使用==和!=来比较这两个数组,程序直接 panic,因此长度不同的数组不能比较。


go语言进行数组比较的方法是什么