BİLGİ SAYAMIYORUM beta

Ruby on Rails da "nil?", "empty?", "blank?" ve "present?" metodları nasıl kullanılır, farkları nedir?

0

Bu metodların hepsi bir objenin boş olup olmadığını kontrol etmek için kullanılır. 

"nil?" metodu Ruby nin kendisinde bulunur ve bir objenin "nil" yani boş ya da boş sayılan bir değere denk gelip gelmediğini kontrol etmek için kullanılır. "" ya da [] gibi şeyler için kullanılmaz, sadece obje doluluğu için kullanılır, zira "nil" in kendisi de bir objedir.

puts nil.nil?

Sorgusu true döndürecektir. Yukarıda bahsettiğim gibi "" ve [] gibi string, array ve hash gibi liste ya da karakter listeleri için başka bir Ruby metodu olan "empty?" metodunu kulanmalısınız:

puts nil.empty?
puts [].empty?
puts "".empty?

Bu üç sorguda true döndürecektir. "empty?" için temel olarak uzunluğun 0 olup olmadığını kontrol eder diyebiliriz. Yani bu kapsamda karakter boşluğuna sahip bir string için aşağıdaki soruyu sorduğunuzda false cevabı alırsınız:

puts " ".empty?

Rails ile Ruby ye gelen güzelliklerden biride bu boşluk kontrollerini birbirinin zıttı olan "blank?" ve "present?" ile yapabiliyor olmanız. "blank?" metodu sorguladığınız içeriğin genel manasıyla geçerli bir içeriğe sahip olup olmadığını kontrol eder:

nil.blank?
[].blank?
"".blank?
" ".blank?
"   ".blank?
true.blank?
false.blank?
{}.blank?
" \n\r\t".blank?

Yukarıdakilerin hepsi true döndürecektir. Ayrıca "blank?" metodu boş öğelere sahip listeler için false döndürür:

["", nil, [], ''].blank?

Eğer listenin içindeki elemanların boş olup olmadığını kontrol etmek isterseniz kısaca şöyle yapabilirsiniz:

["", nil, [], ''].all? &:blank?

Bu sorgu true döndürecektir. 

"present?" da Rails ile gelen bir metoddur ve "blank?" sorgusunun birebir olarak zıttı işe yarar yani onun true verdiği durumda false verir, ya da tam tersi:

!nesne.blank? == nesne.present?

BENZER 7

Kimse etkileşime girmemiş

ETİKETLER