Có thể trong Ruby để có được một tham chiếu đến phương pháp của một đối tượng (Tôi muốn biết nếu điều này có thể được thực hiện mà không procs/lambdas), ví dụ, hãy xem xét đoạn mã sau:Làm cách nào tôi có thể tham chiếu đến một phương thức?
class X
def initialize
@map = {}
setup_map
end
private
def setup_map
# @map["a"] = get reference to a method
# @map["b"] = get reference to b method
# @map["c"] = get referebce to c method
end
public
def call(a)
@map["a"](a) if a > 10
@map["b"](a) if a > 20
@map["c"](a) if a > 30
end
def a(arg)
puts "a was called with #{arg}"
end
def b(arg)
puts "b was called with #{arg}"
end
def c(arg)
puts "c was called with #{arg}"
end
end
Có có thể làm điều đó? Tôi muốn tránh procs/lambdas vì tôi muốn có thể thay đổi hành vi của A, B, C bằng cách phân lớp.
Tuyệt vời! Bạn là người đàn ông :) – Geo