Alle Originalinhalte werden auf Ukrainisch erstellt. Noch nicht alle Inhalte wurden übersetzt. Einige Beiträge sind möglicherweise nur auf Ukrainisch verfügbar.Mehr erfahren

Der Unterschied zwischen blank?, present?, empty? und nil? in Ruby

Beitrags-Cover: Der Unterschied zwischen blank?, present?, empty? und nil? in Ruby
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.

Include, Extend, Prepend in Ruby: wie sie funktionieren und wo der Unterschied liegt
29. Okt, 21:20 Uhr

Include, Extend, Prepend in Ruby: wie sie funktionieren und wo der Unterschied liegt

Нотатки про Ruby та RoR
Нотатки про Ruby та RoR@kovbaska
module_function in Ruby: wenn die Methoden eines Moduls sowohl als Modulmethoden als auch als Funktionen verfügbar sind
29. Okt, 21:53 Uhr

module_function in Ruby: wenn die Methoden eines Moduls sowohl als Modulmethoden als auch als Funktionen verfügbar sind

Нотатки про Ruby та RoR
Нотатки про Ruby та RoR@kovbaska
Was ist Memoization in Ruby?
30. Okt, 10:17 Uhr

Was ist Memoization in Ruby?

Нотатки про Ruby та RoR
Нотатки про Ruby та RoR@kovbaska
is_a?, kind_of?, instance_of? — wie prüft Ruby den Typ eines Objekts?
30. Okt, 19:55 Uhr

is_a?, kind_of?, instance_of? — wie prüft Ruby den Typ eines Objekts?

Нотатки про Ruby та RoR
Нотатки про Ruby та RoR@kovbaska
&& vs and — der Unterschied in Ruby, der Ihren Code brechen kann
30. Okt, 20:23 Uhr

&& vs and — der Unterschied in Ruby, der Ihren Code brechen kann

Нотатки про Ruby та RoR
Нотатки про Ruby та RoR@kovbaska
Variablen in Ruby: @, @@ und Klasseninstanzvariablen
30. Okt, 20:54 Uhr

Variablen in Ruby: @, @@ und Klasseninstanzvariablen

Нотатки про Ruby та RoR
Нотатки про Ruby та RoR@kovbaska
Was ist Middleware in Ruby on Rails und wann wird sie verwendet?
04. Nov, 10:39 Uhr

Was ist Middleware in Ruby on Rails und wann wird sie verwendet?

Нотатки про Ruby та RoR
Нотатки про Ruby та RoR@kovbaska
Was ist der Vanilla Rails-Ansatz?
14. Nov, 16:48 Uhr

Was ist der Vanilla Rails-Ansatz?

Нотатки про Ruby та RoR
Нотатки про Ruby та RoR@kovbaska
Was ist Elasticsearch und wie funktioniert es?
22. Nov, 12:35 Uhr

Was ist Elasticsearch und wie funktioniert es?

Нотатки про Ruby та RoR
Нотатки про Ruby та RoR@kovbaska
Was ist eine Zeitreihen-Datenbank?
22. Nov, 12:42 Uhr

Was ist eine Zeitreihen-Datenbank?

Нотатки про Ruby та RoR
Нотатки про Ruby та RoR@kovbaska
22. Nov, 12:49 Uhr

Was ist VACUUM in PostgreSQL?

Нотатки про Ruby та RoR
Нотатки про Ruby та RoR@kovbaska
Was ist ein B-Baum (ausgeglichener Baum)?
22. Nov, 12:58 Uhr

Was ist ein B-Baum (ausgeglichener Baum)?

Нотатки про Ruby та RoR
Нотатки про Ruby та RoR@kovbaska