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

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

為什么我們可以使用`nil`來獲取成員

為什么我們可以使用`nil`來獲取成員

Go
紅糖糍粑 2022-10-24 16:18:07
我正在研究http 的源代碼Golang,我發(fā)現(xiàn)了這個func NewRequestWithContext(ctx context.Context, method, url string, body io.Reader) (*Request, error) {    ...    rc, ok := body.(io.ReadCloser)    ...}但這body是nil,它是通過以下方式傳遞的func NewRequest(method, url string, body io.Reader) (*Request, error) {    return NewRequestWithContext(context.Background(), method, url, body)}func (c *Client) Get(url string) (resp *Response, err error) {    req, err := NewRequest("GET", url, nil)    if err != nil {        return nil, err    }    return c.Do(req)}函數(shù)Get傳遞nil給函數(shù)NewRequest,函數(shù)NewRequest將 this 傳遞nil給函數(shù)NewRequestWithContext,那么函數(shù) NewRequestWithContext用來nil調(diào)用nil.(io.ReadCloser),為什么不引起panic呢?
查看完整描述

2 回答

?
素胚勾勒不出你

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

該聲明

    rc, ok := body.(io.ReadCloser)

測試是否body為 ReadCloser. 如果不是,rc則將設(shè)置為nil,并將ok設(shè)置為false。

如果代碼是:

rc:=body.(io.ReadCloser)

然后用一個零的身體,它會驚慌失措。


查看完整回答
反對 回復(fù) 2022-10-24
?
FFIVE

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

該語句rc, ok := body.(io.ReadCloser)是在賦值特殊形式中使用的類型斷言。當(dāng)body為 nil 時,rc設(shè)置為 nil 并ok設(shè)置為 false。



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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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