0
s = Proc.new {|x|x*2}
puts "proc:" + (s.call(5)).to_s
def foo(&a)
a.call(5)
end
foo{|x| puts "foo:" + (x*3).to_s}
運行這個程序產生的輸出:參數如何傳遞給特效?
proc:10
foo:15
如何從foo的塊值3得到傳遞給PROC? 我預計今年產量:因爲FOO定義爲
proc:10
foo:10
我們把proc總是調用作爲參數值5:
a.call(5)
爲什麼在輸出FOO 15?
當我調用foo,會發生什麼a.call(5)?它被忽略?我認爲它會被調用,輸出將是10. – uzo 2009-09-16 20:01:40
@uzo:'a'是塊'{| x |放入「foo:」+(x * 3).to_s}'。此塊將參數乘以3.所以,當您使用參數5調用它時,您會得到5 * 3,即15。 – Chuck 2009-09-16 20:25:56
當然,它不會被忽略。 a用參數5調用。然後輸出5 * 3,這就是15. – sepp2k 2009-09-16 20:26:36