[ruby] 인스턴스 변수에 직접 액세스 vs. 접근 자 메서드 사용

누구를 통해 인스턴스 속성에 접근 사이의 차이를 설명 할 수 self.attribute에 의해를 @attribute?



답변

self.attribute메서드를 호출합니다 attribute. 인수를 사용
self.attribute = value하여 메서드 attribute=를 호출합니다 value.
@attribute@attribute = value/ 얻을 인스턴스 변수의 값을 설정@attribute .

그래서 기본적으로 그들은 완전히 다른 두 가지입니다.

그러나 호출 attr_accessor :attribute하면 attribute반환 @attribute할 메서드 attribute=(value)와 설정할 메서드 를 정의합니다 @attribute = value. 따라서이 경우 차이가 없습니다.


답변

“인스턴스 변수에 직접 액세스하는 것은 접근 자 메서드를 사용하여 액세스하는 것보다 약 2 배 빠릅니다.”

확인 : https://www.greyblake.com/blog/2012-09-01-ruby-perfomance-tricks/


답변