2012-05-10 23 views
1

我不知道爲什麼這個方法沒有運行。有一個散列和一個proc參數沒有運行的方法

編譯錯誤讀取:

sequence5.rb:1:in `sequence5': wrong number of arguments (2 for 1) (ArgumentError) from sequence5.rb:11:in `<main>' 

但你可以清楚地看到,sequence5方法應採取2個參數,一個是args哈希和其他爲b PROC。

我試圖運行的代碼就在這裏。

def sequence5(args, &b) 
    n, m, c = args[:n], args[:m], args[:c] 
    i = 0 
    while i < n 
    b.call(i*m+c) 
    i += 1 
    end 
end 

p = Proc.new {|x| puts x} 
sequence5({:n=>3, :m=>4, :c=>0}, p) 

回答

3
sequence5({:n=>3, :m=>4, :c=>0}, &p) 

P不是一個參數,它是一個塊和Ruby有不同的語法用於傳遞塊

+0

謝謝!這解決了這個問題。 –

相關問題