Ruby 使用保护在 if 子句中分配变量

时间:2021-03-30 06:29:12

标签: ruby-on-rails ruby

是否可以用guard替换下面的if子句?

  end_date = if transaction_end_date.nil?
               (starts_in_the_future ? start_date : today) + MIN_END_DATE
             else
               transaction_end_date
             end

1 个答案:

答案 0 :(得分:3)

你可以这样做

end_date = transaction_end_date
end_date ||= (starts_in_the_future ? start_date : today) + MIN_END_DATE

或者只是

end_date = transaction_end_date || 
           (starts_in_the_future ? start_date : today) + MIN_END_DATE