使用Go语言切片比函数强大, 灵活, 方便Array, 是一种轻量级的数据结构。切片是长度可变的序列, 用于存储相似类型的元素, 不允许在同一切片中存储不同类型的元素。在Go切片中, 你可以使用以下方法将两个字节类型的切片彼此进行比较Compare()函数。此函数返回一个整数值, 该整数值表示这些条带相等或不相等, 并且这些值是:
- 如果结果为0, 则slice_1 == slice_2。
- 如果结果为-1, 则slice_1 < slice_2。
- 如果结果为+1, 则slice_1> slice_2。
【如何在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
推荐阅读
- 算法题(如何计算大数的mod())
- 如何使用单个Dockerfile合并多个基本镜像()
- Pandas如何组合Groupby和多个聚合函数()
- 如何在C#中检查线程是否处于活动状态()
- Git的安装初次配置以连接github,在第三方软件中配置使用git 命令,提交项目到github的远程仓库出现bug的解决
- win10插入耳机后有电流声怎么办电脑出现回声怎么办
- 网络传输时既有管道流(PipedInputStream 与 PipedOutStream)又有序列化对象反序列化对象(ObjectOutputStream与 ObjectInputStream)
- 安装选择msi格式还是zip(windows下Nodejs zip版下载安装及环境变量配置)
- github项目托管方式(看项目自身是否自带有 .git)