ruby - `!!empty?` 是什么意思?

标签 ruby boolean negation

ActiveSupport 使用实例方法 blank? 扩展 Object:

class Object
  def blank?
    respond_to?(:empty?) ? !!empty? : !self
  end
end

!!empty? 可以写成 empty? 吗?这是一种文体选择,以便它可以作为返回 boolean 值的方法轻松阅读吗?还是有其他原因?

最佳答案

原因是 !! 将响应从空值强制转换为 boolean 值。 Empty 可以在不同的对象上以不同的方式定义,因此 Rails 中的某些人可能已将 .empty? 定义为不返回 boolean 值。由于 .blank? 需要返回一个 boolean 值,因此需要 !! 来确保返回一个 boolean 值。

关于ruby - `!!empty?` 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34728747/

相关文章:

javascript - JavaScript 中的 boolean 对象是吗?

negation - 在内联查询中排除某些属性值

nlp - 否定句子的算法

ruby-on-rails - Ruby on Rails - 从父类调用每个子类的方法

ruby-on-rails - Rails 3 中 Cancan 的未定义方法角色

ruby-on-rails - 我可以使用相同的网址,但使用不同的动态分段吗?

ruby - 寻找用 Ruby 编写的 XMPP 服务器库

javascript - 多维 boolean 数组检查 Javascript 中是否全部为真

parsing - 在 Dart 中,是否有 `parse` 表示 `bool` 和 `int` 一样?

regex - perl6 在正则表达式中否定多个单词及其字符的排列