Person 클래스를 만들었지 만 코드가 정확하지만 특정 라인을 분명히하기를 원했습니다.Ruby에서 Person 클래스 만들기
내가 헷갈리는 라인은 attr_reader
입니다. 왜 이것을 포함시킬 필요가 있으며 왜 각 속성 앞에 :
이 필요합니까?
Person 클래스를 만들었지 만 코드가 정확하지만 특정 라인을 분명히하기를 원했습니다.Ruby에서 Person 클래스 만들기
내가 헷갈리는 라인은 attr_reader
입니다. 왜 이것을 포함시킬 필요가 있으며 왜 각 속성 앞에 :
이 필요합니까?
attr_reader는 루비가 자동으로 다음 메소드를 추가 할 수있는 편리한 메소드입니다 (getter 메소드). 나는. 하나의 코드 행만이이 세 가지 메소드를 추가합니다.
기호를 입력 인수로 사용하는 경우, 방법이 정의 된 방법입니다. 당신은 인스턴스 변수에 대한 공용 액세스를 허용하지 않습니다 http://ruby-doc.org/core-1.8.7/Module.html#method-i-attr_reader
def first_name
@first_name
end
def age
@age
end
def last_name
@last_name
end
루비에서 좀 더 볼 수, attr_reader
는 방법은 인스턴스 varible에 액세스 할 수있는 쉬운 방법을 제공 Class 클래스에 추가 된 사실이다.
class Class
def attr_reader(*args)
*args.each do |arg|
self.class_eval("def #{arg}; @#{arg}; end")
end
end
end
class_eval
이상 단지 UR 클래스 정의의 코드를 삽입하고이를 평가)
훌륭한 대답은 여기가 발견된다 : http://stackoverflow.com/questions/5046831/why -use-ruby-attr-accessor-attr-reader-and-attr-writer – sunnyrjuneja
what : before string은 무엇을 의미합니까? 상징에 관하여 읽으십시오 http://www.ruby-doc.org/core-1.9.3/Symbol.html –