Accès direct à une variable d’instance vs. Utilisation d’une méthode d’accesseur

Quelqu’un peut-il expliquer la différence entre l’access à un atsortingbut d’instance via self.atsortingbute et par @atsortingbute ?

self.atsortingbute appelle l’ atsortingbute method.
self.atsortingbute = value appelle l’ atsortingbute= method atsortingbute= avec la value l’argument.
@atsortingbute et @atsortingbute = value obtiennent / définissent la valeur de la variable d’instance @atsortingbute .

Donc, fondamentalement, ce sont deux choses complètement différentes.

Cependant, si vous appelez attr_accessor :atsortingbute il définit l’ atsortingbute method pour renvoyer @atsortingbute et l’ atsortingbute=(value) method atsortingbute=(value) pour définir @atsortingbute = value . Donc, dans ce cas, il n’y a pas de différence.

“L’access direct à la variable d’instance est environ deux fois plus rapide que l’access à celle-ci avec les méthodes d’access”

Consultez le: http://greyblake.com/blog/2012/09/02/ruby-perfomance-sortingcks/