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

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

使用正常功能在Golang中返回類似“ ok”的地圖

使用正常功能在Golang中返回類似“ ok”的地圖

Go
MMMHUHU 2019-10-21 15:40:49
在Go中,以下工作(請(qǐng)注意,地圖的一種使用有一個(gè)收益,另一種有兩個(gè)收益)package mainimport "fmt"var someMap = map[string]string { "some key": "hello" }func main() {    if value, ok := someMap["some key"]; ok {        fmt.Println(value)    }    value := someMap["some key"]    fmt.Println(value)}但是,我不知道如何使用自己的功能執(zhí)行相同的操作。是否可能具有類似的行為,并帶有可選的return map?例如:package mainimport "fmt"func Hello() (string, bool) {    return "hello", true}func main() {    if value, ok := Hello(); ok {        fmt.Println(value)    }    value := Hello()    fmt.Println(value)}無(wú)法編譯(由于錯(cuò)誤multiple-value Hello() in single-value context)...有沒有辦法使此語(yǔ)法對(duì)函數(shù)起作用Hello()?
查看完整描述

2 回答

?
慕沐林林

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

map有所不同,因?yàn)樗莾?nèi)置類型而不是函數(shù)。Go語(yǔ)言規(guī)范:索引表達(dá)式map指定了訪問(wèn)a元素的2種形式。


使用功能,您將無(wú)法做到這一點(diǎn)。如果一個(gè)函數(shù)有2個(gè)返回值,則必須“期望”這兩個(gè)值或根本沒有。


但是,您可以將任何返回值分配給Blank標(biāo)識(shí)符:


s, b := Hello()    // Storing both of the return values


s2, _ := Hello()   // Storing only the first


_, b3 := Hello()   // Storing only the second

您還可以選擇不存儲(chǔ)任何返回值:


Hello()            // Just executing it, but storing none of the return values

注意:您也可以將兩個(gè)返回值都分配給空白標(biāo)識(shí)符,盡管它沒有用(除了驗(yàn)證它確實(shí)有兩個(gè)返回值):


_, _ = Hello()     // Storing none of the return values; note the = instead of :=

您也可以在Go Playground上嘗試這些。


輔助功能


如果您多次使用它,并且不想使用空白標(biāo)識(shí)符,請(qǐng)創(chuàng)建一個(gè)放棄第二個(gè)返回值的幫助器函數(shù):


func Hello2() string {

    s, _ := Hello()

    return s

}

現(xiàn)在,您可以執(zhí)行以下操作:


value := Hello2()

fmt.Println(value)


查看完整回答
反對(duì) 回復(fù) 2019-10-21
?
浮云間

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

除了對(duì)@icza的解釋之外:


我不建議在那里使用輔助功能。特別是如果Hello函數(shù)是您自己的函數(shù)。

但是,如果您無(wú)法控制它,那么可以使用幫助程序。

如果是您自己的函數(shù),最好更改函數(shù)的簽名??赡苁悄谀硞€(gè)地方犯了設(shè)計(jì)錯(cuò)誤。

您也可以這樣做:


package main


import "fmt"


func Hello() (string, bool) {

    return "hello", true

}


func main() {

    // Just move it one line above: don't use a short-if

    value, ok := Hello()

    if ok {

        fmt.Println(value)

    }

}


查看完整回答
反對(duì) 回復(fù) 2019-10-21
  • 2 回答
  • 0 關(guān)注
  • 1071 瀏覽
慕課專欄
更多

添加回答

舉報(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)