2 回答

TA貢獻1860條經(jīng)驗 獲得超9個贊
引入的更改列表strings.Builder
包含許多關(guān)于嘗試使此 API 類似于bytes.Buffer
.
例如,
畢竟,這就是 bytes.Buffer 的行為方式,我們應(yīng)該是 bytes.Buffer 的子集。
查看某些功能的文檔bytes.Buffer
,它提到
WriteRune 將 Unicode 代碼點 r 的 UTF-8 編碼附加到緩沖區(qū),返回其長度和錯誤,該錯誤始終為 nil,但包含在內(nèi)以匹配 bufio.Writer 的 WriteRune。
看起來他們基本上是在嘗試設(shè)計一個類似于 Golang 標準庫中其他接口的 API。盡管 always - nil
error 是多余的,但它允許Builder
匹配將接受bytes.Buffer
或的現(xiàn)有接口bufio.Writer
。一個這樣的界面是io.StringWriter
,它看起來像
type StringWriter interface { WriteString(s string) (n int, err error)}
這里的err
返回值很有用,因為其他StringWriter
實現(xiàn)可能會返回錯誤。

TA貢獻1818條經(jīng)驗 獲得超7個贊
去吧,返回一個值和錯誤是很常見的。所以你可以檢查錯誤是否為空,如果沒有錯誤那么很容易使用返回值。換句話說,如果它從函數(shù)接收到錯誤,則表明調(diào)用的函數(shù)存在問題。
- 2 回答
- 0 關(guān)注
- 165 瀏覽
添加回答
舉報