[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/