三元运算符每个真/假的多个指令

时间:2017-11-09 08:51:00

标签: ruby ternary-operator

我有这段代码:

pin_number == pin ? @balance -= amount : puts pin_error

除了余额减去之外,我想在真实部分中puts新余额。我怎么做?如果我试图建立一条新线,它似乎会破坏三元操作。

有时,三元运算符不起作用,除非我在条件之前放置puts或类似的东西。以下内容:

condition ? puts "if_true" : puts "if_false"

不起作用,但是:

puts condition = "if_true" : "if_false"

确实有效。那是为什么?

1 个答案:

答案 0 :(得分:1)

使用常规if/else语句,阅读和维护更容易

if pin_number == pin
  @balance -= amount
  puts @balance
else
  puts pin_error
end

现在关于你的p.s.部分

puts是常规方法。它在三元组中不起作用,因为你省略了括号,ruby ruby​​无法正确解析这一行。此代码将起作用

condition ? puts("if_true") : puts("if_false")