[""]
è un array con un singolo elemento contenente un oggetto String vuoto. [].empty?
restituirà true
. @a.nil?
restituisce false
perché @a
è un oggetto Array, non nil
.
Esempi:
"".nil? # => false
[].nil? # => false
[""].empty? # => false
[].empty? # => true
[""].all? {|x| x.nil?} # => false
[].all? {|x| x.nil?} # => true
[].all? {|x| x.is_a? Float} # => true
# An even more Rubyish solution
[].all? &:nil? # => true
Quella ultima linea dimostra che [].all?
sarà sempre ritorno vero, perché se un array è vuoto, allora, per definizione, tutti i suoi elementi (senza elementi) soddisfano tutte le condizioni.
'[" "]' è _not_ nil. Cosa stai cercando di fare? – Dogbert
Ho la matrice [""] se questa matrice è in arrivo, quindi non dovrebbe andare nella parte interna del blocco. –
Basta fare 'if @a == [" "]'? – Dogbert