[""]
- массив с одним элементом, содержащим пустой объект String. [].empty?
вернется true
. @a.nil?
возвращает false
, потому что @a
является объектом Array, а не nil
.
Примеры:
"".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
Это демонстрирует, что последняя строка [].all?
будет всегда возвращение правды, потому что, если массив пуст, то, по определению, все его элементов (без элементов) не выполняют все условия.
'[" "]' is _not_ nil. Что ты пытаешься сделать? – Dogbert
Я получаю массив [""], если этот массив приближается, тогда он не должен попасть во внутреннюю часть блока. –
Просто выполните 'if @a == [" "]'? – Dogbert