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

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

func 關(guān)鍵字后的兩個(gè)函數(shù)名稱 - 它是什么?

func 關(guān)鍵字后的兩個(gè)函數(shù)名稱 - 它是什么?

Go
胡子哥哥 2023-05-22 17:04:53
最后一個(gè)函數(shù)怎么理解?為什么我們在func聲明后使用不同的函數(shù)名稱?如何使用這些功能?像main函數(shù)中顯示的那樣使用它是錯誤的。package mainimport (    "fmt")func main() {    fmt.Println(incrementer()) //error}func incrementer() func() int { //what is it?!    i := 0    return func() int {        i++        return i    }}
查看完整描述

2 回答

?
白豬掌柜的

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

這只是意味著該函數(shù)正在返回一個(gè)不帶參數(shù)并返回整數(shù)的函數(shù)。那就是


... func() int 

你簽名的一部分在說。


您收到的錯誤是因?yàn)槟?fmt.Println 無法打印函數(shù)。為了證明這一點(diǎn),你可以看到如果你打電話,你會得到同樣的錯誤,


func main() {

    fmt.Println(foo)

}


func foo() int {

  return 1

}

如果你這樣調(diào)用你的函數(shù),可能會更清楚地看到發(fā)生了什么。


func main() {

    myIncrementer := incrementer()

    fmt.Println(myIncrementer()) // Prints 1

}

你在哪里創(chuàng)建增量器,它是一個(gè)函數(shù),然后調(diào)用返回 1 的函數(shù)函數(shù)。


查看完整回答
反對 回復(fù) 2023-05-22
?
鳳凰求蠱

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

簡單地說,由于incrementer()返回一個(gè)函數(shù),它返回的函數(shù)也必須被調(diào)用。你可以這樣做:

functionFoo := incrementer()
fmt.Println(functionFoo())

或者這種簡寫的方式:

fmt.Println(incrementer()())

這實(shí)現(xiàn)了同樣的事情,你只是立即執(zhí)行返回的函數(shù)incrementer()。


查看完整回答
反對 回復(fù) 2023-05-22
  • 2 回答
  • 0 關(guān)注
  • 176 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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