委派當我委派上A
類的實例方法來$delegation_target
如下:關於A
返回-1
實例元數法的以method_missing的
$delegation_target = ""
class A
def method_missing *args, ≺ $delegation_target.send(*args, &pr) end
def respond_to_missing? *args; $delegation_target.respond_to?(*args) end
end
所述的方法arity
不論方法arity
的上$delegation_target
:
def $delegation_target.foo; end
A.new.method(:foo).arity # => -1
def $delegation_target.foo arg1; end
A.new.method(:foo).arity # => -1
def $delegation_target.foo arg1, arg2; end
A.new.method(:foo).arity # => -1
def $delegation_target.foo arg1, arg2, arg3; end
A.new.method(:foo).arity # => -1
這個-1
從哪裏來?並且,是否有辦法使得對於任何可能的方法名稱m
,A.new.method(m).arity
返回$delegation_target.method(m)
(如果已定義)的元數據?