😊
【Ruby】クラス継承でエラーになった
クラスを継承したら初期化で引数エラーとなったのでその原因と対処をメモ。
エラーメッセージ
wrong number of arguments (given 3, expected 0..2) (ArgumentError)
引数の数が間違っています (3 が指定され、0..2 が予想されます) (引数エラー)
原因は、拡張したクラスの初期化で引数が必要でしたが親クラスでは引数不要であったためでした。
エラーとなるコード
class MyFrame < TkFrame
def initialize(ex_name, ex_width, ex_value = 0)
super
end
end
対処は、親クラスの呼び出しで引数が無いことをカッコで明示することでした。
正常なコード
class MyFrame < TkFrame
def initialize(ex_name, ex_width, ex_value = 0)
super() #<-- 引数が無いことをカッコで明示
end
end
Discussion