在 Go 语言中切片比数组更强大、灵活、方便,是一种轻量级的数据结构。切片是一个可变长度的序列,用于存储相似类型的元素,不允许在同一个切片中存储不同类型的元素。
在 Go 的 byes 切片中,您可以借助Equal()函数检查切片的相等性。如果两个切片相等,则此函数返回 true,如果两个切片不相等,则返回 false。它是在 bytes 包下定义的,因此您必须在程序中导入 bytes 包才能访问 Equals函数。
句法:
func Equal(slice_1, slice_1 []byte) bool
在这里,我们检查slice_1和slice_2之间的相等性,并且该函数的返回类型是 bool。让我们在示例的帮助下讨论这个概念:
示例 1:
// Go program to illustrate how to
// check the equality of the slices
package main
import (
"bytes"
"fmt"
)
func main() {
// Creating and initializing slices of bytes
// Using shorthand declaration
slice_1 := []byte{'A', 'N', 'M', 'A',
'P', 'A', 'A', 'W'}
slice_2 := []byte{'A', 'N', 'M', 'A',
'P', 'A', 'A', 'W'}
// Checking the equality of the slices
// Using Equal function
res := bytes.Equal(slice_1, slice_2)
if res == true {
fmt.Println("Slice_1 is equal to Slice_2")
} else {
fmt.Println("Slice_1 is not equal to Slice_2")
}
}
输出:
Slice_1 is equal to Slice_2
示例 2:
// Go program to illustrate how to
// check the equality of the slices
package main
import (
"bytes"
"fmt"
)
func main() {
// Creating and initializing
// slices of bytes
// Using shorthand declaration
slice_1 := []byte{'A', 'N', 'M',
'A', 'P', 'A', 'A', 'W'}
slice_2 := []byte{'g', 'e', 'e', 'k', 's'}
slice_3 := []byte{'A', 'N', 'M', 'A',
'P', 'A', 'A', 'W'}
// Checking the equality of the slices
// Using Equal function
res1 := bytes.Equal(slice_1, slice_2)
res2 := bytes.Equal(slice_1, slice_3)
res3 := bytes.Equal(slice_2, slice_3)
res4 := bytes.Equal([]byte("GeeksforGeeks"),
[]byte("GeeksforGeeks"))
res5 := bytes.Equal([]byte("Geeks"), []byte("GFG"))
res6 := bytes.Equal(slice_1, []byte("P"))
// Displaying results
fmt.Println("Result 1:", res1)
fmt.Println("Result 2:", res2)
fmt.Println("Result 3:", res3)
fmt.Println("Result 4:", res4)
fmt.Println("Result 5:", res5)
fmt.Println("Result 6:", res6)
}
输出:
Result 1: false
Result 2: true
Result 3: false
Result 4: true
Result 5: false
Result 6: false