我有这个代码:

hashChannel <- []byte(md5.Sum(buffer.Bytes()))

我得到了这个错误:

cannot convert md5.Sum(buffer.Bytes()) (type [16]byte) to type []byte

即使没有显式转换,这也不起作用.我也可以保留类型[16]byte,但在某些情况下需要转换它,因为我要通过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]

Go相关问答推荐

Go-Colly:将数据切片为POST请求

由docker中的nginx提供的样式和图像在页面上不起作用

埃拉托塞尼筛:加快交叉关闭倍数步骤

如何在Golang中覆盖404

将这两个函数合二为一的惯用方法

从 wincrypt API 到 Go 的 RC2 解密

如何将 goose 迁移与 pgx 一起使用?

Caddy服务器try 打开端口80而不是8090.

Go Programming Language书上的例子server2错了吗?

Golang 到 wasm 编译使用 tinygo.使用 wasmtime 执行

泛型:实现嵌套接口

Apache Beam 在 Go 中从 PCollection 中 Select 前 N 行

设置指向空接口的指针

有没有什么方法可以在不使用 if/else 的情况下在 Golang 中处理 nil 指针?

Wire google Inject with multi return from provider 函数

如何为导入的嵌入式 struct 文字提供值?

如何在没有内存分配的情况下压缩和发布文件

在 Golang 中获取谷歌云服务帐户的访问令牌?

递归数据 struct 解组在 Go Lang Protobuf 中给出错误无法解析无效的线格式数据

如何使路径/不匹配 Golang net/http 中所有其他不匹配的路径