2011-04-15 72 views
8

除了用一元減去一個很好的對稱性之外,爲什麼在一類Numeric類上定義了一元加運算符?是否有一些實用價值,除了造成混淆,允許編寫像++i(與大多數非Rubyists認爲不會增加i)類似的東西。Ruby中的一元加運算符有什麼意義?

我可以想到在自定義類中定義一元加號可能很有用的情況(比如說,如果你創建了一些性感的DSL),所以能夠定義它是可以的,但爲什麼它已經定義了Ruby數字?

回答

7

也許這只是一個問題,與其他編程語言一致,並且鏡像一元減號。

The Ruby Programming Language(由松本行弘,誰設計的Ruby寫的)這個

找到支持:

一元加號是允許的,但對數字操作數—沒有影響它只是返回其操作數的值。它提供了與一元減去對稱,當然可以重新定義。

1

我看到的一個可能的原因是明確指出一個數字是正數(即使它默認爲正數)。

ruby-1.9.2-p136 :051 > +3 
=> 3 
ruby-1.9.2-p136 :052 > 3 
=> 3