「包括的なRubyプログラミングコース」 e-book子クラスメソッドが親メソッドを拡張する場合があります。私はそれがどのように機能するかを完全に認識していないです:スプラットを使用したスーパーを使ったRuby拡張メソッド
class Parent
def initialize(foo:, bar:)
@foo = foo
@bar = bar
end
end
class Child < Parent
def initialize(buzz:,**args)
super(**args)
@buzz = buzz
end
end
私たちがここにスプラット使用する理由私は完全に理解カント - **args
を。 ここではdef initialize(buzz:,**args)
を入力するだけで、initialize
には不明な数のキー/しかし、これは正確にはsuper(**args)
を意味します。スーパークラスメソッドからkey-value引数を取るようにメソッドに指示するには?なぜだけではなく、次のように:すべての後に
class Child < Parent
def initialize(buzz:)
super
@buzz = buzz
end
end
、super
が親である、なぜこれらのスプラットの引数が必要なものは何でもしてメソッドを拡張するように指示しますか?パラメータリスト内
解決策を試しましたか?スプラット引数が必要な理由を正確に伝えるエラーが表示されます。 – meagar