0

呼び出し元の引数の値を引数のデフォルト値として割り当てるにはどうすればよいですか?メソッドに、呼び出し元メソッドCallme#callmeの引数の値をデフォルトの引数値として持たせたい。nameTheCaller#caller

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"
4

2 に答える 2

2

私が知っているこれを行う暗黙の方法はありません。あなたの最善の策は、引数を通過させることです

class TheCaller
  include Callme
  def caller(*args)
    callme(*args)
  end
end
于 2013-01-31T01:07:20.797 に答える
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"
于 2013-01-31T02:00:41.747 に答える