我不确定为什么这个方法没有运行。
编译错误如下:
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)
答案 0 :(得分:3)
sequence5({:n=>3, :m=>4, :c=>0}, &p)
p不是一个参数,它是一个块,Ruby有不同的语法来传递一个块