Tôi biết rằng các phương pháp trong Ruby không phải là đối tượng mà là procs và lambdas. Có sự khác biệt nào giữa chúng không? Bởi vì cả hai chúng ta có thể đi qua. Điều gì làm cho các đối tượng proc khác với một phương thức?Sự khác nhau giữa phương pháp và đối tượng proc là gì?
Phương pháp:
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 Object:
a = lambda {|a, b| puts "#{a}, #{b}"}
a.call(2,3)
Không yêu cầu proc và lambda. Tôi hỏi sự khác biệt giữa một phương thức và đối tượng proc. –
mà không hiểu làm cách nào họ có thể đánh dấu là trùng lặp: (Tôi đã bỏ lỡ nhiều câu trả lời. Câu hỏi của tôi có hợp lệ không? –
Không nên là: 'a = Proc.new {| a, b | puts" # {a}, # {b} "}' Tôi nghĩ tiêu đề của các câu hỏi có nghĩa là chúng ta đang nói về "Proc [s]", chứ không phải "lambda" –