117 votes

Quand faut-il utiliser le vide vide, néant ?

Existe-t-il des lignes directrices sur la façon de faire la distinction entre , et `` ?

Je suis généralement toujours confus quant à s’en servir dans ma demande car ils semblent tous signifient la même chose, mais ont des significations différentes.

Quelqu'un a-t-il une antisèche sur les détails sanglants ?

189voto

ju. Points 3497

Ici, j’ai fait ce tableau utile dans tout les casenter image description here

183voto

Karmen Blake Points 1675

néant? - vérifie si la variable est une référence à un objet ou pas

est-il vide? - peut être utilisé pour vérifier sur les différents types d'objet comme une chaîne vide "" ou tableau vide []

vide? - vérifie nil? ou empty?. Plus d'infos sur blank?.

7voto

cwninja Points 5041

néant ? est définie sur tous les objets, il retourne true uniquement sur le néant singleton.

vide ? est définie sur tous les objets trop, elle retourne true si l’objet répond également à vide ? et est vide, ou est une valeur de type faux ( ! objet est toujours vrai).

vide ? est définie sur plusieurs objets de collection et a la valeur true si elle ne comporte aucun élément. Il est également défini sur la chaîne.

Notez que blanc est ActiveSupport et pas en rails de 1,8.

5voto

Andrew Hare Points 159332

J'ai trouvé une bonne explication ici:

néant? teste si l'objet est exactement néant, qui est de savoir si c'est la l'un et ne veulent instance de NilClass.

est-il vide? est une méthode de certains objets répondre. Vous devez vérifier la la documentation pour chaque cas. Pour exemple, et tableau vide est celui qui n'est pas nulle (c'est un tableau de droite?) et n'a pas d'éléments. Une chaîne vide est celui qui n'est pas nulle (c'est une chaîne à droite?) et n'a pas d'octets, rien.

Le vide? la méthode que vous demandez n'est pas appartiennent à Ruby, c'est un des Rails extension: http://api.rubyonrails.com/classes/Object.html#M000011.

Si vous cliquez sur le lien à la fin de ce post, vous trouverez que l' blank? méthode combine l' nil? et empty? des appels de méthode.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X