present - ruby empty method
Diferencia entre.nil ?,.blank? y.empty? (3)
Cualquier variable de ruby es un objeto, por lo que puede ser unificado / no establecido (establecido en cero). nil?
el método devuelve verdadero si no se inicializa
b = nil
b.nil? # true
b = ''string value''
b.nil? # false
Las matrices, cadenas y flujos en ruby no pueden contener datos, por lo que pueden estar vacíos. ¿El empty?
método devuelve verdadero si es así
array = []
array.empty? # true
array << 5 << 4 # [5, 4]
array.empty? # false
string = "" # empty line
string.empty? # true
blank?
es el método específico de ActiveSupport (disponible en cualquier objeto) y está disponible en RubyOnRails con ActiveSupport. Devuelve verdadero si el objeto es nulo o está vacío.
Posible duplicado:
Una explicación concisa de nil v. Empty v. Blank en Ruby on Rails
¿Alguien podría decirme la diferencia entre .nil ?, .blank ?, .empty? en ruby?
Cualquier respuesta será muy apreciada.
Sentirlo ;)
¿NULO?
nil.nil?
#=> true
[].nil?
#=> false
"".nil?
#=> false
" ".nil?
#=> false
¿VACÍO?
[].empty?
#=> true
nil.empty?
#=> undefined method
"".empty?
#=> true
" ".empty?
#=> false
¿BLANCO?
[].blank?
#=> true
nil.blank?
#=> true
"".blank?
#=> true
" ".blank?
#=> true
En Ruby, nil
en un objeto (una instancia única de la clase NilClass
) para que se puedan NilClass
métodos sobre él. nil?
es un método estándar en Ruby que se puede invocar en todos los objetos y devuelve true
para el objeto nil
y false
para cualquier otra cosa.
empty?
es un método estándar de Ruby en algunos objetos como Arrays, Hashes y Strings. Su comportamiento exacto dependerá del objeto específico, pero generalmente devuelve true
si el objeto no contiene elementos.
blank?
no es un método estándar de Ruby, pero Rails lo agrega a todos los objetos y devuelve true
para nil
, false
, vacío o una cadena de espacio en blanco.
Porque empty?
no está definido para todos los objetos que obtendrías un NoMethodError
si NoMethodError
empty?
en nil
para evitar tener que escribir cosas como if x.nil? || x.empty?
if x.nil? || x.empty?
Rails agrega el blank?
método.
Después de responder, descubrí que esta pregunta ya se había hecho antes, por lo que también debes verificar las respuestas a esa pregunta.