2016-04-21 91 views
0

我一直在试图编写一个代码来检查这个数字是否是类继承的闰年。但我得到了它与year开始第二行的错误消息:Ruby gets.chomp和类继承

Line 7: private method `chomp' called for nil:NilClass (NoMethodError) 

我要让用户键入年,然后分别返回回应---“这是一个闰年!”或者“糟糕!这不是闰年”。但在我看来,gets.chompclass相互碰撞。我怎么解决这个问题?

下面是我的代码(我修改了前者但它仍然无法正常工作):

class Year 
    def initialize(year) 
    @@year = year 
    end 

    puts "Type the year to see whether it is a leap year!" 
    year = gets.chomp 
end 


class DivideIt 
    def initialize(year) 
    @year = year 
    end 

    if @year % 4 == 0 || @year % 100 != 0 || @year % 400 == 0 
    return true 
    else 
    return false 
    end 
end 

year < DivideIt 

谢谢。 :)

+0

你的意思是'DivideIntoFHund'的除法将检查父类中定义的所有三个条件吗? –

+0

三个条件??我的意思是DivideIntoFHund继承了DivideIntoFour和DivideIntoHund的条件,以便检查给定的数字(year = gets.chomp)。 –

+0

开始格式化您的代码并关闭打开的类定义。 'gets.chomp'只是以下糟糕代码的受害者。 – mudasobwa

回答

0

变化

year = gets.chomp 

year = gets.to_s.chomp 

调用to_s将转换您的nil为空字符串。