如何在Golang中比较两个字节切片()

使用Go语言切片比函数强大, 灵活, 方便Array, 是一种轻量级的数据结构。切片是长度可变的序列, 用于存储相似类型的元素, 不允许在同一切片中存储不同类型的元素。在Go切片中, 你可以使用以下方法将两个字节类型的切片彼此进行比较Compare()函数。此函数返回一个整数值, 该整数值表示这些条带相等或不相等, 并且这些值是:

  • 如果结果为0, 则slice_1 == slice_2。
  • 如果结果为-1, 则slice_1 < slice_2。
  • 如果结果为+1, 则slice_1> slice_2。
此函数在bytes包下定义, 因此, 你必须在程序中导入bytes包才能访问Compare函数。
【如何在Golang中比较两个字节切片()】语法如下:
func Compare(slice_1, slice_2 []byte) int

让我们借助示例来讨论这个概念:
范例1:
// Go program to illustrate how to // compare two slices of bytes package mainimport ( "bytes" "fmt" )// Main function func main() {// Creating and initializing // slices of bytes // Using shorthand declarationslice_1 := []byte{ 'G' , 'E' , 'E' , 'K' , 'S' } slice_2 := []byte{ 'G' , 'E' , 'e' , 'K' , 'S' }// Comparing slice // Using Compare function res := bytes.Compare(slice_1, slice_2)if res == 0 { fmt.Println( "!..Slices are equal..!" ) } else { fmt.Println( "!..Slice are not equal..!" ) } }

输出如下:
!..Slice are not equal..!

范例2:
// Go program to illustrate how // to compare two slices of byte package mainimport ( "bytes" "fmt" )func main() {// Creating and initializing // slices of bytes // Using shorthand declaration slice_1 := []byte{ 'A' , 'N' , 'M' , 'O' , 'P' , 'Q' } slice_2 := []byte{ 'a' , 'g' , 't' , 'e' , 'q' , 'm' } slice_3 := []byte{ 'A' , 'N' , 'M' , 'O' , 'P' , 'Q' } slice_4 := []byte{ 'A' , 'n' , 'M' , 'o' , 'p' , 'Q' }// Displaying slices fmt.Println( "Slice 1: " , slice_1) fmt.Println( "Slice 2: " , slice_2) fmt.Println( "Slice 3: " , slice_3) fmt.Println( "Slice 4: " , slice_4)// Comparing slices // Using Compare function res1 := bytes.Compare(slice_1, slice_2) res2 := bytes.Compare(slice_1, slice_3) res3 := bytes.Compare(slice_1, slice_4) res4 := bytes.Compare(slice_2, slice_3) res5 := bytes.Compare(slice_2, slice_4) res6 := bytes.Compare(slice_2, slice_1) res7 := bytes.Compare(slice_3, slice_1) res8 := bytes.Compare(slice_3, slice_2) res9 := bytes.Compare(slice_3, slice_4) res10 := bytes.Compare(slice_4, slice_1) res11 := bytes.Compare(slice_4, slice_2) res12 := bytes.Compare(slice_4, slice_3) res13 := bytes.Compare(slice_4, slice_4)// Displaying results fmt.Println( "\nResult 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) fmt.Println( "Result 7:" , res7) fmt.Println( "Result 8:" , res8) fmt.Println( "Result 9:" , res9) fmt.Println( "Result 10:" , res10) fmt.Println( "Result 11:" , res11) fmt.Println( "Result 12:" , res12) fmt.Println( "Result 13:" , res13) }

输出如下:
Slice 1:[65 78 77 79 80 81] Slice 2:[97 103 116 101 113 109] Slice 3:[65 78 77 79 80 81] Slice 4:[65 110 77 111 112 81]Result 1: -1 Result 2: 0 Result 3: -1 Result 4: 1 Result 5: 1 Result 6: 1 Result 7: 0 Result 8: -1 Result 9: -1 Result 10: 1 Result 11: -1 Result 12: 1 Result 13: 0

    推荐阅读