3 回答

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

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超3個(gè)贊
它在OO語(yǔ)言中并不常見(jiàn)。事實(shí)上,++
Smalltalk中沒(méi)有這種語(yǔ)言,它創(chuàng)造了“面向?qū)ο缶幊獭边@一術(shù)語(yǔ)(而Ruby語(yǔ)言受其影響最大)。你的意思是它在C語(yǔ)言和傳統(tǒng)語(yǔ)言中非常模仿C.Ruby確實(shí)有一種類(lèi)似C語(yǔ)言的語(yǔ)法,但它并不是堅(jiān)持C語(yǔ)言傳統(tǒng)的奴隸。
至于為什么它不在Ruby中:Matz不想要它。這才是真正的終極原因。
Smalltalk中沒(méi)有這樣的東西的原因是因?yàn)樗钦Z(yǔ)言最重要的哲學(xué)的一部分,分配變量從根本上講是一種不同于向?qū)ο蟀l(fā)送消息的東西 - 它在不同的層面上。這種想法可能影響了Matz設(shè)計(jì)Ruby。
將它包含在Ruby中并不是不可能的 - 您可以輕松編寫(xiě)一個(gè)將所有內(nèi)容++
轉(zhuǎn)換為的預(yù)處理器+=1
。但顯然Matz并不喜歡操作員做過(guò)“隱藏任務(wù)”的想法。擁有一個(gè)隱藏整數(shù)操作數(shù)的運(yùn)算符也似乎有點(diǎn)奇怪。該語(yǔ)言中沒(méi)有其他運(yùn)算符以這種方式工作。
- 3 回答
- 0 關(guān)注
- 1004 瀏覽
添加回答
舉報(bào)