使用 ruby 三元运算符,我们可以为简单的 if else 构造编写以下逻辑:
a = true ? 'a' : 'b' #=> "a"
但是如果我想把它写成if foo 'a' elsif bar 'b' else 'c'
呢?
我可以这样写,但有点难以理解:
foo = true
a = foo ? 'a' : (bar ? 'b' : 'c') #=> "a"
foo = false
bar = true
a = foo ? 'a' : (bar ? 'b' : 'c') #=> "b"
是否有更好的选择来处理这种情况,或者如果我们希望将 if..elsif..else 逻辑压缩成一行,这是我们最好的选择吗?