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

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

Golang 多重返回重載是地圖類(lèi)型獨(dú)有的嗎?

Golang 多重返回重載是地圖類(lèi)型獨(dú)有的嗎?

Go
Qyouu 2021-09-27 10:01:26
這些都有效:m := make(map[int]int)elem, ok := m[1]elem = m[1]然而,這是不允許的:func overload() (int, int) {    return 1, 1}func overload() int {    return 1}func main() {    x := overload()    x, y := overload()}另外,是否有不能概括的內(nèi)置語(yǔ)法列表?我一直對(duì)什么是特殊語(yǔ)法(即map[string]int)make([]int, 10)以及什么是語(yǔ)言的一部分感到困惑。
查看完整描述

3 回答

?
慕容森

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

這是特殊的語(yǔ)法。除了映射鍵檢查之外,至少類(lèi)型斷言和通道接收具有一元素和二元素版本。在所有這些情況下,第二個(gè)元素在文檔示例中是一個(gè)bool調(diào)用ok;對(duì)于類(lèi)型斷言,它表示斷言是否成功,對(duì)于通道接收,它表示通信是否成功(false如果通道關(guān)閉且為空)。

for...range有自己的、不同的單元素和雙元素版本,但也許range更明顯是特別的。

有一個(gè)內(nèi)置函數(shù)列表。如果你真的想知道所有的極端情況,請(qǐng)查看規(guī)范——它很短,沒(méi)有陷入某些標(biāo)準(zhǔn)文檔的各種細(xì)節(jié),一旦你玩過(guò)這種語(yǔ)言就值得花時(shí)間. (Effective Go和FAQ也屬于這一類(lèi)。)


查看完整回答
反對(duì) 回復(fù) 2021-09-27
?
白板的微信

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

您給出的示例不是方法重載。


第一個(gè)示例:顯示地圖中是否存在鍵。


m := make(map[int]int)

elem, ok := m[1]

elem = m[1]

elem 將從地圖中接收值“1”或“零值”,如果“foo”實(shí)際存在于地圖中,則 ok 將接收一個(gè)將設(shè)置為 true 的布爾值。


官方網(wǎng)站:Go 不支持方法和運(yùn)算符的重載?


如果不需要進(jìn)行類(lèi)型匹配,則方法分派會(huì)得到簡(jiǎn)化。使用其他語(yǔ)言的經(jīng)驗(yàn)告訴我們,擁有多種名稱(chēng)相同但簽名不同的方法有時(shí)很有用,但在實(shí)踐中也可能會(huì)令人困惑和脆弱。僅按名稱(chēng)匹配并要求類(lèi)型的一致性是 Go 類(lèi)型系統(tǒng)中一個(gè)主要的簡(jiǎn)化決定。


Golang 支持可變參數(shù)函數(shù)和方法。這是您可以(或多或少)在 Golang 中進(jìn)行函數(shù)和方法重載的另一種方式。


可變參數(shù)函數(shù)或方法是接受可變數(shù)量參數(shù)的函數(shù)或方法。


示例:


o1 := Overload(1, 2, 3)

o2 := Overload(153, 196883, 1729, 1634, 5, 36)

o3 := Overload(1, -2)

有關(guān)更多詳細(xì)信息,您可以查看這篇文章:Golang 中的函數(shù)和方法重載。


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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