OO Ruby のスキルを向上させようとしています。クラスを作成しましたが、それを呼び出して ans インスタンスを作成しようとすると、エラーが発生します。
これがコードです。
class EncapsulatedPerson
def initialize(name)
set_name(name)
end
def name
@first_name + " "+ @last_name
end
def set_name
first_name, last_name = name.split(/\s+/)
set_first_name(first_name)
set_last_name(last_name)
end
def set_first_name
@first_name = name
end
def set_last_name
@last_name = name
end
end
上記の行に書き込んだファイルをロードし、このクラスのインスタンスを作成しようとすると
2.2.0 :004 > ep = EncapsulatedPerson.new('William Wallace')
ArgumentError: wrong number of arguments (1 for 0)
... #
エラーからわかるように、新しいインスタンスを作成するときは引数を0つ渡す必要があります(ただし、def initialize(name) ...
1つの(名前)引数が必要だと思います'
2.2.0 :003 > ep = EncapsulatedPerson.new
ArgumentError: wrong number of arguments (0 for 1)
私は完全に混乱しました。new
メソッドをインスタンス化しようとするとき、メソッドにはいくつの引数が必要ですか? 1 つの引数または引数なし?