rails present opposite not nil method empty blank ruby ruby-on-rails-3 object

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.