SORU
19 Mayıs 2009, Salı


Nil özlü bir açıklama v. v. Raylar üzerinde Yakut boş boş

Kendimi sürekli nil?, blank? ve Raylar üzerinde Yakut empty? farklılıkları net bir tanım arıyorum buluyorum. İşte en yaklaştığım an:

  • 6* *nesneleri yanlış, ya da boşluk, boş bir dize. Örnek, *7, , *, []*nil*8, ve {} için boş.

  • nil? nesneleri NilClass örnekleri.

  • empty? nesneleri sınıf özel ve tanımı sınıftan sınıfa değişir. Bir dize herhangi bir karakter varsa, boş ve bir dizi eğer hiçbir öğe içeriyorsa boş.

Bir şey eksik, ya da yapılan sıkı bir benzerlik var mı?

CEVAP
20 Mayıs 2009, ÇARŞAMBA


.nil? herhangi bir nesne üzerinde kullanılabilir ve eğer nesne nil ise geçerlidir.

.empty? dizeleri, diziler ve karma ve true değerini döndürür üzerinde kullanılabilir:

  • == 0 dize uzunluğu
  • == 0 dizi uzunluğu
  • == 0 karma uzunluğu

Nil bir şey .empty? çalışan NoMethodError bir durum oluşturur.

.blank? giriyor. implemented by Rails ve herhangi bir nesne üzerinde işlem yanı sıra dizeleri, diziler ve karma .empty? gibi çalışır.

nil.blank? == true
false.blank? == true
[].blank? == true
{}.blank? == true
"".blank? == true
5.blank? == false
0.blank? == false

.blank? de boş olmayan ama yalnızca boşluk içeren dizeler doğru değerlendirir:

"  ".blank? == true
"  ".empty? == false

.blank? yadsınması verirRails also provides .present?,.

Dizi yakaladım: blank? bile false dönecektirelemanlarıbir dizinin boş. Bu durumda boşluk belirlemek için, örneğin blank? ile all? kullanın:

[ nil, '' ].blank? == false
[ nil, '' ].all? &:blank? == true 

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DrePwn

    DrePwn

    22 Temmuz 2011
  • hytchme

    hytchme

    9 Mart 2014
  • LiveForGodsKingdom

    LiveForGodsK

    6 NİSAN 2008