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

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

為什么Ruby不支持i ++或i--(遞增/遞減運算符)?

為什么Ruby不支持i ++或i--(遞增/遞減運算符)?

紅糖糍粑 2019-07-26 17:13:43
為什么Ruby不支持i ++或i--(遞增/遞減運算符)?前/后遞增/遞減運算符(++和--)是非常標(biāo)準(zhǔn)的編程語言語法(至少對于過程語言和面向?qū)ο笳Z言)。為什么Ruby不支持它們?我知道你可以用+=和完成同樣的事情-=,但是排除這樣的東西似乎有點奇怪,特別是因為它是如此簡潔和傳統(tǒng)。例:i = 0    #=> 0i += 1   #=> 1i        #=> 1i++      #=> expect 2, but as far as I can tell,           #=> irb ignores the second + and waits for a second number to add to i我理解Fixnum是不可改變的,但如果+=能夠?qū)崿F(xiàn)一個新的Fixnum并設(shè)置它,為什么不這樣做++呢?包含=角色的作業(yè)的一致性是唯一的原因,還是我錯過了什么?
查看完整描述

3 回答

?
開滿天機(jī)

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

一個原因是到目前為止,每個賦值運算符(即更改變量的運算符)都包含=在其中。如果添加++--,那情況就不一樣了。

另一個原因是人們的行為++--經(jīng)?;煜?。i++例證:你的例子中的返回值實際上是1,而不是2(i然而,新值將是2)。


查看完整回答
反對 回復(fù) 2019-07-26
?
蠱毒傳說

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

它在OO語言中并不常見。事實上,++Smalltalk中沒有這種語言,它創(chuàng)造了“面向?qū)ο缶幊獭边@一術(shù)語(而Ruby語言受其影響最大)。你的意思是它在C語言和傳統(tǒng)語言中非常模仿C.Ruby確實有一種類似C語言的語法,但它并不是堅持C語言傳統(tǒng)的奴隸。

至于為什么它不在Ruby中:Matz不想要它。這才是真正的終極原因。

Smalltalk中沒有這樣的東西的原因是因為它是語言最重要的哲學(xué)的一部分,分配變量從根本上講是一種不同于向?qū)ο蟀l(fā)送消息的東西 - 它在不同的層面上。這種想法可能影響了Matz設(shè)計Ruby。

將它包含在Ruby中并不是不可能的 - 您可以輕松編寫一個將所有內(nèi)容++轉(zhuǎn)換為的預(yù)處理器+=1。但顯然Matz并不喜歡操作員做過“隱藏任務(wù)”的想法。擁有一個隱藏整數(shù)操作數(shù)的運算符也似乎有點奇怪。該語言中沒有其他運算符以這種方式工作。


查看完整回答
反對 回復(fù) 2019-07-26
  • 3 回答
  • 0 關(guān)注
  • 994 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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