【发布时间】:2019-02-01 00:37:07
【问题描述】:
我是 Ruby 新手,对三元运算符 ?: 的工作原理有点困惑。
据书Engineering Software as a Service: An Agile Approach Using Cloud Computing:
每个操作都是对某个对象的方法调用并返回一个值。
从这个意义上说,如果三元运算符表示一个操作,它就是对带有两个参数的对象的方法调用。但是,我在Ruby's documentation 中找不到三元运算符代表的任何方法。三元运算符是否代表 Ruby 中的操作?上面提到的书的上述主张是错误的吗? Ruby 中的三元运算符真的只是 if ... then ... else ... end 语句的语法糖吗?
请注意: 我的问题与How do I use the conditional operator (? :) in Ruby? 有关,但与那个不同。我知道如何以该帖子中描述的方式使用三元运算符。我的问题是关于三元运算符在 Ruby 中的定义位置以及三元运算符是否定义为一个或多个方法。
【问题讨论】:
-
@ElliottFrisch 我的问题与那个有关,但与那个不同。我知道如何以该帖子中描述的方式使用
ternary operator。我的问题是关于ternary operator在 Ruby 中的定义位置以及ternary operator是否定义为一个或多个方法。 -
此表可能有用。并非 Ruby 中的所有运算符都是对象上的方法。 techotopia.com/index.php/…
-
@MarcBaumbach 根据该表,三元运算符没有作为方法实现。我想我读的书中的说法是错误的。你怎么看?您认为我对书中的主张的解释有误吗?
-
我不认为您对它的解释有误,我认为这本书不正确或不够具体。一般来说,Ruby 确实将几乎所有东西都视为一个对象,而其他语言通常不这样做。
nil就是一个很好的例子。
标签: ruby ternary-operator