3 回答
TA貢獻(xiàn)1846條經(jīng)驗(yàn) 獲得超7個(gè)贊
reflect.DeepEqual(a, b)返回 false,因?yàn)槟诒容^兩種類型。
var a = []byte("qwedsa") //here a is a slice with length 6
var b [6]byte //here b is a array with length 6
您可以使用不同的選項(xiàng)來(lái)執(zhí)行此操作,如下所述。
reflect.DeepEqual(a, b[:]) //by getting a slice from b array使用這個(gè)而不是反射包,因?yàn)榉瓷洳焕谛阅埽?a >Adrian在他的評(píng)論中提到的
bytes.Equal(a, b[:])
直接創(chuàng)建為長(zhǎng)度為(如果不需要將其用作數(shù)組)的切片。
ba
var b = make([]byte, len(a)) bytes.Equal(a, b)
TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超8個(gè)贊
這樣做是這樣的:
package main
import "bytes"
func main() {
var (
a = []byte("qwedsa")
b [6]byte
)
copy(b[:], a)
println(bytes.Equal(a, b[:]))
}
https://golang.org/pkg/bytes#Equal
TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個(gè)贊
根據(jù)建議,您必須將其轉(zhuǎn)換為并使用 。下面是相同的實(shí)現(xiàn):byte arraybyte slicebytes.Equal
package main
import (
"bytes"
"fmt"
)
func main() {
var a = []byte("qwedsa")
var b [6]byte
sliceb := b[:]
copy(sliceb, a)
fmt.Println(bytes.Equal(a, sliceb))
}
輸出:
true
- 3 回答
- 0 關(guān)注
- 122 瀏覽
添加回答
舉報(bào)
