Différence entre .nil?, .empty?, .blank?, .present?, .any?

.nil?

C’est une méthode Ruby, elle peut être utilisée sur tous les objets et retourne true si l’objet est null.

Exemple :

.empty?

C’est une méthode Ruby, elle peut être utilisée sur les strings, les arrays, et les hashes. Elle retourne true si la length vaut zéro.

Mettre un .empty? sur quelque chose qui est null lève une exception NoMethodError.

Exemple :

.blank?

C’est une méthode Rails (ActiveSupport), elle fonctionne sur les objets, et de la même manière que .empty? sur les strings, arrays, et hashes. La seule différence est que .blank? vaut true sur les strings non-empty? mais qui contiennent un espace blanc.

Exemple :

.present?

C’est une méthode Rails (ActiveSupport), qui est l’inverse de .blank?

Exemple :

.any?

C’est une méthode Ruby, qui transfère chaque élément de la collection à un bloc donné. La méthode retourne true si le bloc retourne une valeur autre que false ou null. Si le bloc n’est pas donné, Ruby ajoute un bloc implicite de ce type :

.any? retourne true si au moins l’un des objets de la collection n’est pas faux ou null.

Exemple :

.present? vs .Any?

Tableau récapitulatif

.nil? .blank? .empty? .any? .present?
nil TRUE TRUE x x false
[] false TRUE TRUE false false
{} false TRUE TRUE false false
"" false TRUE TRUE x false
" " false TRUE false x false
false false TRUE x x false
99 false false x x TRUE
0 false false x x TRUE

x: NoMethodError

MAJ : Petite comparaison entre .any? (ruby) et .many? (Rails) :

screen

Source : GitBook – Ruby on Rails Basic et Slideshare – Ruby Syntax

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.