1 回答
TA贡献1829条经验 获得超7个赞
使用函数来避免复制/粘贴类似的代码:
func write(writer io.Writer, encoding binary.ByteOrder, value interface{}) {
buf := new(bytes.Buffer)
err := binary.Write(buf, encoding, value)
if err != nil {
panic(fmt.Sprint("binary.Write failed:", err))
}
_, _ = writer.Write(buf.Bytes())
}
这样称呼它:
write(writer, encoding, uint16(200))
因为字节。不需要缓冲区,写入功能可以简化为:
func write(writer io.Writer, encoding binary.ByteOrder, value interface{}) {
err := binary.Write(writer, encoding, value)
if err != nil {
panic(fmt.Sprint("binary.Write failed:", err))
}
}
此版本的函数更改了错误的处理方式。问题中的代码忽略从 返回的错误。当从编写器返回错误时,此版本将死机。写。writer.Write
如果要比惊慌失措更优雅地处理错误,请调用 binary。直接写入:
err := binary.Write(writer, encoding, value)
if err != nil {
// handle error
}
在此代码段中,可以是 、 等。valueuint16(200)uint64(len(myArray))
- 1 回答
- 0 关注
- 90 浏览
添加回答
举报