如何将调用方参数的值分配为参数的默认值?我希望方法Callme#callme
将调用者方法TheCaller#caller
的name
参数的值作为默认参数值。
module Callme
def callme(hero = name)
hero
end
end
class TheCaller
include Callme
def caller(name)
callme
end
end
say = TheCaller.new
say.caller("superman")
# => expecting "superman"
我知道没有
隐式的方法可以做到这一点。 你最好的选择是只通过参数
class TheCaller
include Callme
def caller(*args)
callme(*args)
end
end
也许我不明白这个问题,但是向 TheCaller 添加一个名称访问器似乎使这项工作按预期进行:
module Callme
def callme(hero = name)
hero
end
end
class TheCaller
attr_accessor :name
include Callme
def caller(name)
@name = name
callme
end
end
say = TheCaller.new
p say.caller("superman")
# => "superman"