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

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

速記返回。

速記返回。

Go
臨摹微笑 2022-03-07 19:37:25
以下代碼在 Go 1.6 或 1.7 中生成語(yǔ)法錯(cuò)誤(在語(yǔ)句末尾出現(xiàn)意外 ++ ):package mainimport "fmt"var x intfunc increment() int {        return x++   // not allowed}func main() {  fmt.Println( increment() )}這不應(yīng)該被允許嗎?
查看完整描述

2 回答

?
陪伴而非守候

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

這是一個(gè)錯(cuò)誤,因?yàn)?Go 中的++and--是語(yǔ)句,而不是表達(dá)式:Spec: IncDec 語(yǔ)句(并且語(yǔ)句沒(méi)有將返回的結(jié)果)。

如果沒(méi)有指針?biāo)阈g(shù),前置和后置增量運(yùn)算符的便利值就會(huì)下降。通過(guò)將它們從表達(dá)式層次結(jié)構(gòu)中完全刪除,表達(dá)式語(yǔ)法得到了簡(jiǎn)化,并且圍繞 ++ 和 --(考慮 f(i++) 和 p[i] = q[++i])的求值順序的混亂問(wèn)題也被消除了. 簡(jiǎn)化意義重大。至于后綴與前綴,兩者都可以正常工作,但后綴版本更傳統(tǒng);對(duì)前綴的堅(jiān)持源于 STL,這是一個(gè)語(yǔ)言庫(kù),其名稱諷刺地包含后綴增量。


所以你寫的代碼只能寫成:


func increment() int {

    x++

    return x

}

你必須在不傳遞任何東西的情況下調(diào)用它:


fmt.Println(increment())

請(qǐng)注意,我們?nèi)匀粫?huì)嘗試使用賦值將其寫在一行中,例如:


func increment() int {

    return x += 1 // Compile-time error!

}

但這在 Go 中也不起作用,因?yàn)橘x值也是一個(gè)語(yǔ)句,因此會(huì)出現(xiàn)編譯時(shí)錯(cuò)誤:


語(yǔ)法錯(cuò)誤:語(yǔ)句末尾出現(xiàn)意外 +=


查看完整回答
反對(duì) 回復(fù) 2022-03-07
?
Qyouu

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

公認(rèn)的解決方案是正確的,因?yàn)?OP 的代碼不起作用,因?yàn)樵?go increment/decrement(x++/x--) 語(yǔ)句中是不返回值的表達(dá)式。


但是,提出的解決方案與原始請(qǐng)求的效果略有不同。


x++ 將返回 x 的值,然后以類似 C 的語(yǔ)法遞增。


但是,如果您這樣做,則會(huì)發(fā)生相反的情況:


x++

return x

您可以通過(guò)將初始值減一或使用此處編寫的 defer 語(yǔ)句來(lái)否定該問(wèn)題:


func incr() int {

    defer func() { counter++ }()

    return counter

}

https://play.golang.org/p/rOuAv7KFJQw


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

添加回答

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