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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Golang 將 nil 作為可選參數(shù)傳遞給函數(shù)?

Golang 將 nil 作為可選參數(shù)傳遞給函數(shù)?

Go
LEATH 2021-11-08 15:42:44
在 Golang 中,http.NewRequest有這樣的規(guī)范:func NewRequest(method, urlStr string, body io.Reader) (*Request, error)但是,如果我不想將 傳遞給對(duì)象,我可以將其nil作為body選項(xiàng)傳遞,如下所示:bodyio.Readerreq, err := http.NewRequest("GET", "http://www.blahblah.org", nil)我如何在我的代碼中實(shí)現(xiàn)這個(gè)功能?我有一個(gè)函數(shù),我想傳遞一個(gè)可選的字符串值,以便它可以翻閱 API 結(jié)果,但是如果我將 a 傳遞nil給字符串輸入,我會(huì)得到這個(gè):./snippets.go:32: 無法將 nil 轉(zhuǎn)換為字符串類型我的函數(shù)的參數(shù)如下所示:func getChallenges(after string) ([]challenge, string, error)
查看完整描述

3 回答

?
HUH函數(shù)

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超4個(gè)贊

Go 沒有“可選”參數(shù)作為其他語(yǔ)言中普遍理解的概念;nil只是接口的零值(io.Reader在這種情況下)。

字符串的等效零值是一個(gè)空字符串:

getChallenges("")

如果要接受 0 個(gè)或多個(gè)相同的參數(shù)類型,請(qǐng)使用可變參數(shù)語(yǔ)法:

func getChallenges(after ...string) ([]challenge, string, error)


查看完整回答
反對(duì) 回復(fù) 2021-11-08
?
qq_笑_17

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超7個(gè)贊

您可以修改函數(shù)以接收指針值,如下所示:


func getChallenges(after *string) ([]challenge, string, error)


然后您可以將其nil作為參數(shù)傳遞給它。但是不要忘了檢查after的nil取消引用它之前你的函數(shù)的內(nèi)在價(jià)值,或者你會(huì)得到一個(gè)零指針異常:


func getChallenges(after *string) ([]challenge, string, error) {

    if after == nil {

        // No value specified

    } else {

        fmt.Printf("After: %s\n", *after) // Note pointer dereferencing with "*"

    }

    // ...

}

另外一個(gè)選項(xiàng):


只需使用兩個(gè)函數(shù):


func getChallenges(after string) {}


func getAllChallenges() {

    return getChallenges(/* some default value here */)

}


查看完整回答
反對(duì) 回復(fù) 2021-11-08
?
紅顏莎娜

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊

您可以使用橢圓運(yùn)算符來發(fā)送可選參數(shù).. 不要在可選參數(shù)中傳遞任何內(nèi)容并檢查參數(shù)的長(zhǎng)度。它應(yīng)該可以解決您的問題


func foo(params ...int) {

   fmt.Println(len(params))

}


func main() {

    foo()

    foo(1)

    foo(1,2,3)

}


查看完整回答
反對(duì) 回復(fù) 2021-11-08
  • 3 回答
  • 0 關(guān)注
  • 288 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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