相关疑难解决方法(0)

如何在Ruby中使用条件运算符(?:)?

如何? :在Ruby中使用条件运算符()?

例如,这是正确的吗?

<% question = question.size > 20 ? question.question.slice(0, 20)+"..." : question.question %>
Run Code Online (Sandbox Code Playgroud)

ruby ternary-operator conditional-operator

294
推荐指数
4
解决办法
33万
查看次数

Ruby如果.. elsIf .. else在一行?

使用ruby三元运算符,我们可以为一个简单的if else构造编写以下逻辑:

a = true  ? 'a' : 'b' #=> "a"
Run Code Online (Sandbox Code Playgroud)

但是,如果我想写这个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"
Run Code Online (Sandbox Code Playgroud)

有没有更好的选择来处理这种情况,或者如果我们希望将if..elif..else逻辑压缩成一行,这是我们最好的选择吗?

ruby logic

22
推荐指数
3
解决办法
4万
查看次数