私はこのコードを持っています:
hashChannel <- []byte(md5.Sum(buffer.Bytes()))
そして、私はこのエラーを受け取ります:
cannot convert md5.Sum(buffer.Bytes()) (type [16]byte) to type []byte
明示的な変換がなくても、これは機能しません。タイプ[16]バイトも保持できますが、TCP接続:
_, _ = conn.Write(h)
それを変換するための最良の方法は何ですか?ありがとう
アレイをスライスします。例えば、
package main
import (
"bytes"
"crypto/md5"
"fmt"
)
func main() {
var hashChannel = make(chan []byte, 1)
var buffer bytes.Buffer
sum := md5.Sum(buffer.Bytes())
hashChannel <- sum[:]
fmt.Println(<-hashChannel)
}
出力:
[212 29 140 217 143 0 178 4 233 128 9 152 236 248 66 126]
配列を使用してスライスを作成すると、 simple slice expression
:
foo := [5]byte{0, 1, 2, 3, 4}
var bar []byte = foo[:]
またはあなたの場合:
b := md5.Sum(buffer.Bytes())
hashChannel <- b[:]