三元运算符每 true/false 多条指令

Ternary operator multiple instructions per true/false

我有这个代码:

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

除了减去余额外,我还想puts真实部分的新余额。我怎么做?如果我尝试换行,它似乎破坏了三元运算。

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

condition ? puts "if_true" : puts "if_false"

不起作用但是:

puts condition = "if_true" : "if_false"

有效。这是为什么?

使用常规的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")