除了与一元负号形成良好的对称性外,为什么在Numeric类上定义一元正号运算符?除了造成混淆并允许编写像++i这样的代码(与大多数非Ruby程序员认为的不同,它不会使i递增),它还有其他实际价值吗?我可以想象在自定义类上定义一元正号可能有用的场景(比如创建一些性感的DSL),因此能够定义它是可以接受的,但为什么它已经在Ruby数字上定义了呢?
也许这只是与其他编程语言的一致性有关,并且为了反映一元减号。在 Ruby编程语言(由设计Ruby的松本行弘撰写)中找到了支持:“一元加号是允许的,但对数字操作数没有影响-它仅返回其操作数的值。它提供了与一元减号的对称性,并且当然可以重新定义。”
String
相关的一元加号,尽管问题是关于Numeric
的。 - Eric Walker