Я знаю, что методы в Ruby не объекты, а procs и лямбды. Есть ли разница между ними, кроме этого? Потому что мы можем обойтись. Что делает объекты proc отличными от метода?В чем разница между методом и объектом proc?
Метод:
1.8.7-p334 :017 > def a_method(a,b)
1.8.7-p334 :018?> puts "a method with args: #{a}, #{b}"
1.8.7-p334 :019?> end
1.8.7-p334 :021 > meth_ref = Object.method("a_method")
=> #<Method: Class(Object)#a_method>
1.8.7-p334 :022 > meth_ref.call(2,3)
Proc объект:
a = lambda {|a, b| puts "#{a}, #{b}"}
a.call(2,3)
Не прошу прощения и лямбда. Я прошу разницу между методом и объектом proc. –
, не понимая, как они могут быть отмечены как дубликаты :(Я пропустил много ответов. Ответит ли мой вопрос? –
Не должно быть: 'a = Proc.new {| a, b | puts" # {a}, # {b} "}' Я думаю, что название вопросов означает, что мы говорим о «Proc [s]», а не «lambda». –