在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,因此长度不同的数组不能比较。