如何检查 Golang 中字节片的相等性?

原文:https://www . geeksforgeeks . org/如何检查 golang 中字节片的相等性/

在 Go 语言中切片比一个数组更强大、灵活、方便,是一个轻量级的数据结构。切片是存储相似类型元素的可变长度序列,不允许在同一切片中存储不同类型的元素。 在 byes 的 Go 切片中,可以借助 Equal() 功能检查切片的相等性。如果两个切片相等,此函数返回 true 如果两个切片不相等,则返回 false。它是在字节包下定义的,所以您必须在程序中导入字节包来访问 Equals 函数。

语法:

func Equal(slice_1, slice_1 []byte) bool

这里我们检查 slice_1slice_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