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

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

条件运算符如何(? :)用于红宝石?

例如,这是对的吗?

<% question = question.size > 20 ? question.question.slice(0, 20)+"..." : question.question %>


临摹微笑
浏览 513回答 3
3回答

梦里花落0921

这是三元算子,它的工作方式类似于C(不需要括号)。这个表达式的工作原理如下:if_this_is_a_true_value&nbsp;?&nbsp;then_the_result_is_this&nbsp;:&nbsp;else_it_is_this然而,在红宝石,if也是这样的表达式:if a then b else c end&nbsp;===&nbsp;a ? b : c,除优先权问题外。两者都是表达。例子:puts&nbsp;(if&nbsp;1&nbsp;then&nbsp;2&nbsp;else&nbsp;3&nbsp;end)&nbsp;#&nbsp;=>&nbsp;2puts&nbsp;1&nbsp;?&nbsp;2&nbsp;:&nbsp;3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #&nbsp;=>&nbsp;2x&nbsp;=&nbsp;if&nbsp;1&nbsp;then&nbsp;2&nbsp;else&nbsp;3&nbsp;endputs&nbsp;x&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #&nbsp;=>&nbsp;2注意,在第一种情况下,需要使用括号(否则Ruby会感到困惑,因为它认为它是puts if 1但在最后一种情况下,它们是不需要的,因为上面提到的问题并不会出现。您可以在多行上使用“long-if”表单来提高可读性:question&nbsp;=&nbsp;if&nbsp;question.size&nbsp;>&nbsp;20&nbsp;then &nbsp;&nbsp;question.slice(0,&nbsp;20)&nbsp;+&nbsp;"..."else&nbsp; &nbsp;&nbsp;questionend

慕尼黑5688855

puts&nbsp;true&nbsp;?&nbsp;"true"&nbsp;:&nbsp;"false" =>&nbsp;"true" puts&nbsp;false&nbsp;?&nbsp;"true"&nbsp;:&nbsp;"false" =>&nbsp;"false"

牧羊人nacy

您对再培训局的使用表明您处于Rails中。如果是,那么考虑truncate,一个内置的帮手,为你做这份工作:<%&nbsp;question&nbsp;=&nbsp;truncate(question,&nbsp;:length=>30)&nbsp;%>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Ruby