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

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

如何使用 Nil Receiver 處理方法?

如何使用 Nil Receiver 處理方法?

Go
慕桂英3389331 2022-05-23 16:38:37
type Product struct {    productName string}func (p *Product) GetProductName() string {    return p.productName}在 Go 中,通常應(yīng)該如何處理方法的接收者為 nil 并且方法邏輯本身不會產(chǎn)生錯誤(例如 getter)的情況?不要處理它,讓它恐慌檢查 nil,如果為真則返回零值使用有意義的消息檢查 nil 和 panic檢查 nil 并增強(qiáng)在 nil 上返回錯誤的方法其他這真的取決于我傾向于#1,但認(rèn)為雖然#3 有點(diǎn)冗長,但它可以使調(diào)試更容易。我的想法是調(diào)用代碼應(yīng)該測試 nil 并且知道在這種情況下該怎么做。在簡單的 getter 方法上返回錯誤太冗長了。
查看完整描述

1 回答

?
撒科打諢

TA貢獻(xiàn)1934條經(jīng)驗 獲得超2個贊

不要處理它,讓它恐慌


您可以在 go 標(biāo)準(zhǔn)庫中查看示例。例如,在net/http包中,有以下內(nèi)容:


func (c *Client) Do(req *Request) (*Response, error) {

    return c.do(req)

}

而且,另一個例子來自encoding/json:


// Buffered returns a reader of the data remaining in the Decoder's

// buffer. The reader is valid until the next call to Decode.

func (dec *Decoder) Buffered() io.Reader {

    return bytes.NewReader(dec.buf[dec.scanp:])

}


查看完整回答
反對 回復(fù) 2022-05-23
  • 1 回答
  • 0 關(guān)注
  • 173 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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