2014-05-14 52 views
1

我正在練習Ruby代碼,當我鍵入以下代碼時,出現以下錯誤。在這種情況下,我應該怎麼做?未定義的方法錯誤。我該怎麼辦?

的代碼是在這裏:

class RandomSequence 

def initialize(limit,num) 
@limit,@num=limit,num 
end 

def each 
@num.times {yield(rand*@limit).floor} 
end 
end 

i=-1 

RandomSequence.new(10,4).each do |num| 
i=num if i<num 
end 

http://ideone.com/bSkAXN

錯誤消息我得到的是:

prog.rb:8:in block in each: undefined method floor for nil:NilClass (NoMethodError) 
    from prog.rb:8:in times 
    from prog.rb:8:in each 
    from prog.rb:14:in <main> 
+1

把代碼問題本身 –

回答

3

添加括號:

@num.times {yield((rand*@limit).floor)} 

沒有抽一個圓括號,yield(rand*@limit)返回nil,你會得到一個NoMethodError呼叫nil.floor

相關問題