Ruby attr_accessor nedir?
Zor zamanlar Ruby attr_accessor
s anlayış yaşıyorum, biri bana açıklayabilir mi? Google aramaları ton yaptım, onları tam olarak anlayamıyoruz.
CEVAP
Hadi 7* *bir sınıf olduğunu varsayalım.
class Person
end
person = Person.new
person.name # => no method error
Açıkçası biz hiç yöntem name
tanımlanmış. Bunu yapmayalım.
class Person
def name
@name # simply returning an instance variable @name
end
end
person = Person.new
person.name # => nil
person.name = "Dennis" # => no method error
Aha, adını okuyabiliriz, ama isim vermemiz anlamına gelmez. Bu iki farklı yöntem vardır. Eski aradıokuyucuve ikinci aradıyazar. Yazar oluşturmak henüz öyle yapalım yani biz yapmadık.
class Person
def name
@name
end
def name=(str)
@name = str
end
end
person = Person.new
person.name = 'Dennis'
person.name # => "Dennis"
Harika. Şimdi ve örnek değişken @name
okuyucu ve yazar yöntemlerini kullanarak okuma yazma yapabiliriz. Bu yüzden sık sık yapılır dışında, neden bu yazma yöntemleri her zaman harcıyorsun? Daha kolay yapabiliriz.
class Person
attr_reader :name
attr_writer :name
end
Hatta bu tekrarlayan alabilirsiniz. İstediğiniz zaman hem okuyucu ve yazar sadece erişimci kullanın!
class Person
attr_accessor :name
end
person = Person.new
person.name = "Dennis"
person.name # => "Dennis"
Aynı şekilde çalışır! Ve tahmin edin ne oldu: örnek değişkeni bizim kişi @name
nesne elle yaptığımız gibi ayarlanır, diğer yöntemleri kullanabilirsiniz.
class Person
attr_accessor :name
def greeting
"Hello #{@name}"
end
end
person = Person.new
person.name = "Dennis"
person.greeting # => "Hello Dennis"
İşte bu kadar. attr_reader
, attr_writer
attr_accessor
yöntem aslında senin için yöntemler oluşturmak nasıl anlamak için, diğer cevaplar, kitaplar, ruby docs okuyun.
Ve Ruby dahil ihtiyaç arasındaki fark ...
Göster(&:adı Ruby anlamı nedir?...
Neden Ruby'attr_accessor, attr_re...
Arasındaki fark vardır ve genişletmek ...
&Quot;doğru" Ruby bir dizi sokman...