Kann jemand den Unterschied zwischen dem Zugriff auf ein Instanzattribut über self.attributeund durch erklären @attribute?
Kann jemand den Unterschied zwischen dem Zugriff auf ein Instanzattribut über self.attributeund durch erklären @attribute?
Antworten:
self.attributeruft die Methode auf attribute.
self.attribute = valueruft die Methode attribute=mit dem Argument auf value.
@attributeund @attribute = valueden Wert der Instanzvariablen abrufen / festlegen @attribute.
Im Grunde sind es also zwei völlig verschiedene Dinge.
Wenn Sie jedoch nennen attr_accessor :attributees definiert die Methode attributezurück @attributeund das Verfahren attribute=(value)zum Set @attribute = value. In diesem Fall gibt es also keinen Unterschied.
"Der direkte Zugriff auf Instanzvariablen ist etwa doppelt so schnell wie der Zugriff mit Zugriffsmethoden."
Überprüfen Sie die: https://www.greyblake.com/blog/2012-09-01-ruby-perfomance-tricks/
self.(sofern Sie die Getter / Setter - Methode gerade schreiben) , auch wenn Sie derzeit habenattr_accessor. Dies schützt Sie vor zusätzlichen Refactor-Arbeiten und Fehlern, wenn Sie später die Accessor-Methode (n) ändern, um mehr zu tun als nur die Instanzvariable abzurufen / festzulegen. (Oder wenn jemand anderes Ihre Arbeit