【发布时间】:2014-10-09 07:27:41
【问题描述】:
我有两段代码,就我对 Ruby 的理解而言,它们的功能应该相同。两者都将位于同一个初始化方法中:
class TicTacToePlayer
def initialize(player_type = { human: true })
# Here
end
end
第一个代码是标准的 if/else 语句:
if player_type[:human]
extend Human
else
extend Joshua
end
第二个就是上面作为三元运算符的:
player_type[:human] ? extend Human : extend Joshua
...
我希望两者功能相同,但第一个运行顺利,第二个返回以下错误:
语法错误,意外的 tCONSTANT,需要关键字_do 或 '{' 或 '(' ...yer_type[:human] ? extend Human : extend Joshua # 三元运算...
为什么不一样?
【问题讨论】:
标签: ruby module ternary-operator