3 回答

TA貢獻(xiàn)1786條經(jīng)驗 獲得超13個贊
一個原因是到目前為止,每個賦值運算符(即更改變量的運算符)都包含=
在其中。如果添加++
和--
,那情況就不一樣了。
另一個原因是人們的行為++
和--
經(jīng)?;煜?。i++
例證:你的例子中的返回值實際上是1,而不是2(i
然而,新值將是2)。

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ù)的運算符也似乎有點奇怪。該語言中沒有其他運算符以這種方式工作。
- 3 回答
- 0 關(guān)注
- 994 瀏覽
添加回答
舉報