InhaltsverzeichnisKlicke auf den Link, um zur gewünschten Stelle zu navigieren
Dieser Inhalt wurde automatisch aus dem Ukrainischen übersetzt.
In Ruby und Rails sieht man oft die Methoden blank?, present?, empty? und nil?. Sie scheinen ähnlich zu sein, haben aber tatsächlich unterschiedliche Ursprünge und Verhaltensweisen. Lassen Sie uns klären, wann welche Methode verwendet werden sollte.
nil? - die grundlegende Ruby-Methode
Die Methode nil? ist Teil von Ruby. Sie gibt true zurück, wenn das Objekt tatsächlich nil ist.
nil.nil? # => true "".nil? # => false [].nil? # => false 0.nil? # => false
Sie wird verwendet, um zu überprüfen, ob ein Objekt überhaupt vorhanden ist.
empty? — für Sammlungen und Strings
Die Methode empty? ist in den Klassen String, Array, Hash, Set und einigen anderen definiert. Sie überprüft, ob die Sammlung oder der String leer ist, d.h. keine Elemente oder Zeichen enthält.
"".empty? # => true
[].empty? # => true
{}.empty? # => true
nil.empty? # => NoMethodError
Wenn das Objekt empty? nicht unterstützt, erhalten Sie einen Fehler. Daher sollte diese Methode nur verwendet werden, wenn Sie den Typ der Variablen genau kennen.
blank? - aus ActiveSupport (Rails)
Die Methode blank? stammt aus der Bibliothek ActiveSupport, die mit Rails geliefert wird. Sie ist eine "intelligentere" Version von empty?, da sie sowohl nil, als auch Leerzeichen und leere Sammlungen berücksichtigt.
nil.blank? # => true
"".blank? # => true
" ".blank? # => true
[].blank? # => true
{}.blank? # => true
false.blank? # => true
0.blank? # => false
blank? ist praktisch in Rails-Code zu verwenden, wenn man die "Leere" eines beliebigen Objekts ohne Ausnahmen überprüfen möchte.
present? - aus ActiveSupport (Rails)
Die Methode present? ist einfach das Gegenteil von blank?. Sie gibt true zurück, wenn das Objekt nicht leer ist.
"Ruby".present? # => true "".present? # => false nil.present? # => false [1, 2].present? # => true
Sie wird für Bedingungen verwendet:
puts "Hello!" if name.present?
Zusammenfassung:
- nil? - Standard-Ruby, überprüft nur nil.
- empty? - Standard-Ruby, für Sammlungen und Strings usw.
- blank? - aus ActiveSupport, berücksichtigt sowohl nil, als auch Leerzeichen und leere Sammlungen.
- present? - aus ActiveSupport, das Gegenteil von blank?.
Wann was verwenden
- Wenn Sie reines Ruby ohne Rails schreiben - verwenden Sie nil? und empty?.
- Wenn Sie Rails oder ActiveSupport haben - ist es oft praktischer, blank? / present? zu verwenden, da sie alle Fälle abdecken und keinen Fehler bei nil verursachen.
Dieser Beitrag hat noch keine Ergänzungen vom Autor.