Kendimi defalarca farklarının net bir tanım arayan bulmak nil?
, blank?
ve empty?
Ruby on Rails. İşte en yakın geldiğim:
blank?
nesneler yanlış, boş veya boşluk dizesidir. Örneğin,""
," "
,nil
,[]
, ve{}
boş.nil?
nesneleri NilClass örneğidir.empty?
nesneler sınıfa özeldir ve tanım sınıftan sınıfa değişir. Bir karakter içermiyorsa bir dize, öğe içermiyorsa bir dizi boştur.
Eksik bir şey veya yapılabilecek daha sıkı bir karşılaştırma var mı?
:nil?
tanımlanır ::Kernel
ve üzerinde geçersiz ::NilClass
iken, :empty?
birçok sınıflara ayrı ayrı uygulanır (doğal olarak üzerine ::String
, ::Array
, ::Hash
, ve non-doğal gibi diğer sınıflara ::Set
stdlib gelen ve ::ActiveRecord::Relation
raylar itibaren). Bu nedenle :nil?
, kendi ::Object
sınıfını içeren ::Kernel
ve :empty?
özellikle sınıflarınıza uygulanması gereken ya da dahil edilmesi gereken her sınıfın tüm alt sınıflarında mevcuttur.
nil
konsepti anlamaya çalışırsanız buradan başlayın .
[1] pry(main)> [].blank? => true
present?
. Bunun nedeniblank?
boş bir dizi için true değerini döndürmesidir.