亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在Ruby中使用條件運算符(?:)?

如何在Ruby中使用條件運算符(?:)?

臨摹微笑 2019-07-05 13:01:43
如何在Ruby中使用條件運算符(?:)?條件運算符如何(? :)用于紅寶石?例如,這是對的嗎?<% question = question.size > 20 ? question.question.slice(0, 20)+"..." : question.question %>
查看完整描述

3 回答

?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

這是三元算子,它的工作方式類似于C(不需要括號)。這個表達式的工作原理如下:

if_this_is_a_true_value ? then_the_result_is_this : else_it_is_this

然而,在紅寶石,if也是這樣的表達式:if a then b else c end === a ? b : c,除優先權問題外。兩者都是表達。

例子:

puts (if 1 then 2 else 3 end) # => 2puts 1 ? 2 : 3                
# => 2x = if 1 then 2 else 3 endputs x                        
# => 2

注意,在第一種情況下,需要使用括號(否則Ruby會感到困惑,因為它認為它是puts if 1但在最后一種情況下,它們是不需要的,因為上面提到的問題并不會出現。

您可以在多行上使用“long-if”表單來提高可讀性:

question = if question.size > 20 then
  question.slice(0, 20) + "..."else 
  questionend


查看完整回答
反對 回復 2019-07-05
?
慕尼黑5688855

TA貢獻1848條經驗 獲得超2個贊

puts true ? "true" : "false"
=> "true"
puts false ? "true" : "false"
=> "false"


查看完整回答
反對 回復 2019-07-05
?
牧羊人nacy

TA貢獻1862條經驗 獲得超7個贊

您對再培訓局的使用表明您處于Rails中。如果是,那么考慮truncate,一個內置的幫手,為你做這份工作:

<% question = truncate(question, :length=>30) %>


查看完整回答
反對 回復 2019-07-05
  • 3 回答
  • 0 關注
  • 549 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號