第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么從golang中的strings.Builder WriteString返回nil錯誤

為什么從golang中的strings.Builder WriteString返回nil錯誤

Go
手掌心 2022-10-17 19:43:53
在查看我同事的代碼時,我發(fā)現(xiàn) returnerr已被忽略,盡管我們通常不會這樣做:b := new(strings.Builder)b.WriteString("Hello, World!") // ignore err的源代碼WriteString聲明它可能會返回錯誤,但實際上它永遠不會(總是返回nil錯誤值):// WriteString appends the contents of s to b's buffer.// It returns the length of s and a nil error.func (b *Builder) WriteString(s string) (int, error) {    b.copyCheck()    b.buf = append(b.buf, s...)    return len(s), nil}如果有的話,刪除錯誤返回會出現(xiàn)什么問題,如下所示?func (b *Builder) WriteString(s string) int {    b.copyCheck()    b.buf = append(b.buf, s...)    return len(s)}
查看完整描述

2 回答

?
慕碼人2483693

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 - nilerror 是多余的,但它允許Builder匹配將接受bytes.Buffer或的現(xiàn)有接口bufio.Writer。一個這樣的界面是io.StringWriter,它看起來像

type StringWriter interface {
    WriteString(s string) (n int, err error)}

這里的err返回值很有用,因為其他StringWriter實現(xiàn)可能會返回錯誤。


查看完整回答
反對 回復(fù) 2022-10-17
?
qq_笑_17

TA貢獻1818條經(jīng)驗 獲得超7個贊

去吧,返回一個值和錯誤是很常見的。所以你可以檢查錯誤是否為空,如果沒有錯誤那么很容易使用返回值。換句話說,如果它從函數(shù)接收到錯誤,則表明調(diào)用的函數(shù)存在問題。



查看完整回答
反對 回復(fù) 2022-10-17
  • 2 回答
  • 0 關(guān)注
  • 165 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號