如何将一种类型转换为字节数组
下面是一个有效的例子
// You can edit this code!
// Click here and start typing.
package main
import (
"bytes"
"fmt"
"reflect"
)
type Signature [5]byte
const (
/// Number of bytes in a signature.
SignatureLength = 5
)
func main() {
var bytes0to64 Signature = SignatureFromBytes([]byte("Here is a string.........."))
fmt.Println(reflect.TypeOf(bytes0to64))
res := bytes.Compare([]byte("Test"), bytes0to64)
if res == 0 {
fmt.Println("!..Slices are equal..!")
} else {
fmt.Println("!..Slice are not equal..!")
}
}
func SignatureFromBytes(in []byte) (out Signature) {
byteCount := len(in)
if byteCount == 0 {
return
}
max := SignatureLength
if byteCount < max {
max = byteCount
}
copy(out[:], in[0:max])
return
}
在Go lang中
type Signature [5]byte
所以这是意料之中的
var bytes0to64 Signature = SignatureFromBytes([]byte("Here is a string.........."))
fmt.Println(reflect.TypeOf(bytes0to64))
它只是将类型输出到
main.Signature
这是正确的,现在我想从中获取字节数组,用于下一级处理,并得到一个编译错误
./prog.go:23:29: cannot use bytes0to64 (type Signature) as type []byte in argument to bytes.Compare
Go build failed.
这个错误是正确的,只是比较不匹配.现在,我应该如何将签名类型转换为字节数组