Eventuali duplicati:
A concise explanation of nil v. empty v. blank in Ruby on RailsDifferenza tra .nil ?, .blank? e. vuoto?
Qualcuno mi potrebbe dire la differenza tra .nil ?, .blank ?, .empty? in rubino?
Qualsiasi risposta sarà molto apprezzata.
Eventuali duplicati:
A concise explanation of nil v. empty v. blank in Ruby on RailsDifferenza tra .nil ?, .blank? e. vuoto?
Qualcuno mi potrebbe dire la differenza tra .nil ?, .blank ?, .empty? in rubino?
Qualsiasi risposta sarà molto apprezzata.
In Ruby, nil
in un oggetto (una singola istanza della classe NilClass
) in modo che i metodi possano essere chiamati su di esso. nil?
è un metodo standard in Ruby che può essere chiamato su tutti gli oggetti e restituisce true
per l'oggetto nil
e false
per qualsiasi altra cosa.
empty?
è un metodo Ruby standard su alcuni oggetti come Array, Hash e Stringhe. Il suo comportamento esatto dipenderà dall'oggetto specifico, ma in genere restituisce true
se l'oggetto non contiene elementi.
blank?
non è un metodo standard, ma rubino è aggiunto tutti oggetti di rotaie e restituisce true
per nil
, false
, vuoto o una stringa spazi.
Perché empty?
non è definito per tutti gli oggetti si otterrebbe un NoMethodError
se si chiama empty?
su nil
modo per evitare di dover scrivere le cose come if x.nil? || x.empty?
Rails aggiunge il metodo blank?
.
Dopo aver risposto, ho scoperto che this question has been asked before quindi è necessario controllare le risposte a quella domanda troppo.
sentirlo;)
NIL?
nil.nil?
#=> true
[].nil?
#=> false
"".nil?
#=> false
" ".nil?
#=> false
VUOTO?
[].empty?
#=> true
nil.empty?
#=> undefined method
"".empty?
#=> true
" ".empty?
#=> false
BLANK?
[].blank?
#=> true
nil.blank?
#=> true
"".blank?
#=> true
" ".blank?
#=> true
Qualsiasi variabile di ruby è un oggetto, quindi può essere unificata/non impostata (impostata su zero). nil?
metodo restituisce vero se non è inizializzata
b = nil
b.nil? # true
b = 'string value'
b.nil? # false
Array, stringhe, torrenti rubino può contenere non ci sono dati, in modo che possano essere vuoto. Il metodo empty?
restituisce vero se così
array = []
array.empty? # true
array << 5 << 4 # [5, 4]
array.empty? # false
string = "" # empty line
string.empty? # true
blank?
è ActiveSupport metodo specifico (disponibile in qualsiasi oggetto) ed è disponibile in RubyOnRails con ActiveSupport. Restituisce vero se l'oggetto è nullo o vuoto.
'vuoto?'se metodo ActiveSupport – fl00r
@ fl00r sì, hai ragione. modificherai la risposta – Ribtoks