[""]
là một mảng có phần tử đơn chứa đối tượng Chuỗi trống. [].empty?
sẽ trả lại true
. @a.nil?
đang trả lại false
vì @a
là đối tượng mảng, chứ không phải nil
.
Ví dụ:
"".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
Đó dòng cuối cùng chứng minh rằng [].all?
sẽ luôn trở thành sự thật, bởi vì nếu một mảng trống sau đó theo định nghĩa tất cả các yếu tố của nó (không tố) đáp ứng mọi điều kiện.
'[" "]' là _not_ nil. Bạn đang cố làm gì vậy? – Dogbert
Tôi nhận được mảng [""] nếu mảng này đến sau đó nó không nên đi vào phần bên trong của khối. –
Chỉ cần làm 'if @a == [" "]'? – Dogbert