0
在「綜合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)
。告訴方法從超類方法中獲取這些鍵值參數?爲什麼不只是這樣的:
class Child < Parent
def initialize(buzz:)
super
@buzz = buzz
end
end
畢竟,super
講述與任何有父擴展方法,那麼,爲什麼這些圖示ARGS需要的?
你*嘗試*你的解決方案?你會得到一個錯誤,應該告訴你爲什麼需要splat參數。 – meagar