Rails - !arr&.any? = arr&.空?

yu-*_*der 0 ruby ruby-on-rails

在 Rails 中,我想检查数组是否为空(arr = [])。

!arr&.any? 
arr&.empty?
Run Code Online (Sandbox Code Playgroud)

哪个更正确?

cod*_*aks 7

看看下面的Ruby:

[1, 2].any? => true
[nil, false].any? => false
[nil, nil].any? => false

[1, 2].empty? => false
[nil, nil].empty? => false
Run Code Online (Sandbox Code Playgroud)

可枚举#任何?是一种询问“此集合中是否有任何内容是真的?”的方法。在 Ruby 中,对象的存在被认为是真实的;所以在#any?没有块的情况下调用是说在这个集合中是否有一些不是 nil 或 false 的东西?

有关更多信息,请参阅“任何?!=!空?