为调用者的参数值指定默认参数值

时间:2013-01-31 01:03:39

标签: ruby methods arguments default

如何将调用者参数的值指定为参数的默认值? 我希望方法Callme#callme能够将调用方法name的{​​{1}}参数的值作为默认参数值。

TheCaller#caller

2 个答案:

答案 0 :(得分:2)

我知道没有隐含的方法可以做到这一点。你最好的选择是通过

传递args
class TheCaller
  include Callme
  def caller(*args)
    callme(*args)
  end
end

答案 1 :(得分:0)

也许我不明白这个问题,但为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"