아래의 프로그램은 미국 대통령과 프랑스 대통령의 나이와 이름을 취하는 시도입니다. 프랑스 인의 대통령이 나중에 그의 이름, 나이, 시민권 (내 생각이 아님)을 부르는 "bein sur"라고 말한다. 나는 프랑스 대통령의 캐치 프레이즈에 문제가있다. 여기루비 수퍼 클래스
class President
attr_accessor :name, :age
def initialize(name, age)
@name = name
@age = age
end
def name=(name) # setter
@name = name
end
def name # getter
@name
end
def age=(age)
@age = age
end
def age
@age
end
end
class FrancePresident < President
def self.citizenship
"La France"
end
def initialize(name, age)
super(name)
super(age)
end
def catchphrase
"bein sur"
end
end
class UnitedStatesPresident < President
def self.citizenship
"The Unites States of America"
end
end
나는 그의 캐치 프레이즈에 대해 가지고있는 인스턴스 메서드는이 문구를 말하는이 사람을 얻을 수있는 많은 중 마지막 시도이지만 불완전이, 내가이 호출을 정의하는데 같아 내 코드입니다 그의 이름과 나이를 얻는 슈퍼 클래스이지만이 인수 오류를 피하는 방법을 알지 못합니다.
ArgumentError
wrong number of arguments (1 for 2)
exercise.rb:4:in `initialize'
exercise.rb:32:in `initialize'
exercise_spec.rb:24:in `new'
exercise_spec.rb:24:in `block (3 levels) in <top (required)>'
저는 루비를 처음 사용 했으므로 어떠한 힌트 나 제안도 주시면 감사하겠습니다.
'attr_accessor : name, : age' 때문에'def age/def age =()'(와'name'도) 중복됩니다. 다른 메소드를 자동으로 정의하는 것은'attr_accessor'가 성취하는 것과 똑같습니다. 직접 정의 할 필요가 없습니다. –
오, 그래서'attr_accessor'는 getter와 setter에 내장 된 것과 비슷합니까? –
캐치 프레이즈는 "bien sûr"을 읽어야합니다. :) 출처 : https://translate.google.com/#en/fr/of%20course – mhutter