如下面的ruby示例所示,我不能調用lambda
參數的數量錯誤Proc
從Method
創建,因爲它嚴格限制參數的數量:如何將方法或lambda轉換爲非lambda proc
# method with no args
def a; end
instance_eval(&method(:a))
# ArgumentError: wrong number of arguments (1 for 0)
method(:a).to_proc.call(1, 2, 3)
# ArgumentError: wrong number of arguments (3 for 0)
method(:a).to_proc.lambda?
# => true
我如何獲得一個Proc
,是不是無論是從Proc
一個lambda是或從Method
?
據我所知,您不能將方法或lambda轉換爲非lambda proc。你想達到什麼目的? – 2013-04-24 17:51:36
@WallyAltman塊的調用語義,首先是關於參數的數量,但還有其他幾個不同之處。 – michelpm 2013-04-24 17:58:06