Saltar al contenido

Diferencia entre .nil ?, .blank? y .vacío?

Solución:

En Ruby, nil en un objeto (una sola instancia de la clase NilClass). Esto significa que se pueden invocar métodos. nil? es un método estándar en Ruby que se puede invocar en todos objetos y devoluciones true Para el nil objeto 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 normalmente devuelve true si el objeto no contiene elementos.

blank? no es un método estándar de Ruby pero se agrega a todos objetos por raíles y devoluciones true por nil, false, vacío o una cadena de espacios en blanco.

Porque empty? no está definido para todos los objetos, obtendría un NoMethodError si llamaste empty? sobre nil para evitar tener que escribir cosas como if x.nil? || x.empty? Rails agrega el blank? método.


Después de responder, encontré una pregunta anterior, “Cómo entender cero versus vacío versus blanco en Rails (y Ruby)”, por lo que también debe verificar las respuestas.

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

Cualquier variable de Ruby es un objeto, por lo que se puede desinicializar / desarmar (establecer en nil). nil? El método devuelve verdadero si no está inicializado:

b = nil
b.nil? # true
b = 'string value'
b.nil? # false

Las matrices, cadenas y secuencias en Ruby no pueden contener datos, por lo que pueden estar vacías. los empty? El 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 un método específico de Active Support (disponible en cualquier objeto) y está disponible en Ruby On Rails con Active Support. Devuelve verdadero si un objeto es nulo o está vacío.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *