Ruby bugünkü ileri matematik ve desen ActiveSupport yok::Memoizable bakın?
3.2, ActiveSupport Raylar yani::Memoizable kalmıştır.
Mesajı okur:
DEPRECATION WARNING: ActiveSupport::Memoizable is deprecated and will be removed in future releases,simply use Ruby memoization pattern instead.
"Ruby memoization pattern ve bakın... bilmemiz gereken tek bir desen varsa orada" (tekil). anlamına gelir
Gibi bir anlamı var sanırım:
def my_method
@my_method ||= # ... go get the value
end
ya
def my_method
return @my_method if defined?(@my_method)
@my_method = # ... go get the value
end
Kaçırdığım başka bir şey var mı?
CEVAP
Burada Memoizable bulunmamıştı nerede tamamlama (ve sonraki tartışma): https://github.com/rails/rails/commit/36253916b0b788d6ded56669d37c96ed05c92c5c
Geçiş için örnek olarak @foo ||= ...
yaklaşım points to this commit avukatlar yazarı: https://github.com/rails/rails/commit/f2c0fb32c0dce7f8da0ce446e2d2f0cba5fd44b3.
Edit:
Mutlaka memoize
tüm örneklerini veya w/ bu deseni değiştirilmelidir, yani bu değişiklik yorumlamak istemiyorum unutmayın. Memoizable artık gerek duyulmayan anlam/Raylar kod kendisi istediği gibi okudum. Yorum işaret ettiği gibi, Memoizable daha @foo ||= ...
etrafında sarıcı. Eğer ihtiyacınız olan bu özellikler, devam edin ve kullanın Memoizable, sadece gidip onu bir yerden başka ActiveSupport (sanırım birisi olacak çatal bir mücevher sürümü, henüz yapmamışlarsa).
Ruby: bir desen için dosya metin Arama...
Ruby gem mysql2 başarısız yükleyin...
Bir şekilde Ruby yöntem bağımsız değiş...
/C desen Atma sonuçlandırmak#...
Harita Ruby ve sıfır değerleri Kaldırm...