[""]
ist ein Array mit einem einzelnen Element, das ein leeres String-Objekt enthält. [].empty?
wird true
zurückgegeben. @a.nil?
gibt false
zurück, weil @a
ein Array-Objekt ist, nicht nil
.
Beispiele:
"".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
Das letzte Zeile zeigt, dass [].all?
wird immer return true, denn wenn ein Array dann per Definition alle Elemente leer ist (keine Elemente) jede Bedingung erfüllen.
'[" "]' ist _nicht_nicht. Was versuchst du zu machen? – Dogbert
Ich bekomme das Array [""], wenn dieses Array kommt, dann sollte es nicht zum inneren Teil des Blocks gehen. –
Tun Sie einfach 'if @a == [" "]'? – Dogbert