go比较两个字节切片大小

go可以直接使用自带的bytes.compare比较两个字节切片的大小,代码如下:

package compare

import (
    "bytes"
    "testing"
)

// 下面的测试代码是比较常用的表格驱动测试的方式,可以结合mock函数等一起使用
func TestByteSliceCompare(t *testing.T) {
    type Args struct {
       sliceA []byte
       sliceB []byte
    }
    tests := []struct {
       name string
       args Args
       want int
    }{
       {
          name: "slice a equal b",
          args: Args{
             sliceA: []byte{1, 2, 3},
             sliceB: []byte{1, 2, 3},
          },
          want: 0,
       },
       {
          name: "slice a less than b",
          args: Args{
             sliceA: []byte{1, 2, 3},
             sliceB: []byte{4, 5, 6},
          },
          want: -1,
       },
       {
          name: "slice a much more than b",
          args: Args{
             sliceA: []byte{4, 7, 8},
             sliceB: []byte{4, 5, 6},
          },
          want: 1,
       },
    }
    for _, tt := range tests {
       if got := bytes.Compare(tt.args.sliceA, tt.args.sliceB); got != tt.want {
          t.Errorf("got not equal to want,name:%s,got:%d,want:%d", tt.name, got, tt.want)
       }
    }
}

执行结果如下所示:

=== RUN   TestByteSliceCompare
--- PASS: TestByteSliceCompare (0.00s)
PASS

ps:另有strings.compare方法可以比较两个字符串大小,如有需要自取


go中bytes包下面有用的方法还是挺多的,比如bytes.Buffer是一个字节缓冲区,提供了许多字节slice操作方法的封装,可以加快处理速度(貌似是这样,以后理解深刻了再补充吧)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值