1 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊
使用函數(shù)來避免復(fù)制/粘貼類似的代碼:
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))
因?yàn)樽止?jié)。不需要緩沖區(qū),寫入功能可以簡(jiǎn)化為:
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))
}
}
此版本的函數(shù)更改了錯(cuò)誤的處理方式。問題中的代碼忽略從 返回的錯(cuò)誤。當(dāng)從編寫器返回錯(cuò)誤時(shí),此版本將死機(jī)。寫。writer.Write
如果要比驚慌失措更優(yōu)雅地處理錯(cuò)誤,請(qǐng)調(diào)用 binary。直接寫入:
err := binary.Write(writer, encoding, value)
if err != nil {
// handle error
}
在此代碼段中,可以是 、 等。valueuint16(200)uint64(len(myArray))
- 1 回答
- 0 關(guān)注
- 104 瀏覽
添加回答
舉報(bào)