什么2:1作为ruby方法的日期参数传递意味着什么?

时间:2016-02-20 22:50:18

标签: ruby date module format

我的date_helper.rb模块

中有以下方法
def is_holiday_season? date=nil
    @date = date || DateTime.now
    ("14 Nov #{@date.year}".to_date .. "8 Jan #{@date.year}".to_date+1.year).cover?(@date.to_date) ||
    ("14 Nov #{@date.year}".to_date-1.year .. "8 Jan #{@date.year}".to_date).cover?(@date.to_date)
end

  module_function :is_holiday_season?

我在

中使用以下语法在其他地方调用此方法
n = DateHelper.is_holiday_season? ? 2 : 1

'? 2 : 1'语法是什么意思?

我认为这是一种传递日期/时间的方法,但我无法在任何地方找到解释。

1 个答案:

答案 0 :(得分:3)

它是一个三元运算符,可以转换为if语句,如下所示:

n = if DateHelper.is_holiday_season? then 2 else 1 end

在您的情况下,您不会向is_holiday_season?方法传递任何内容。