我在一个例子中遇到了红宝石
def role?(role)
return !!self.roles.find_by_name(role.to_s.camelize)
end
Run Code Online (Sandbox Code Playgroud)
你为什么要用!!?是不是一样的
return self.roles.find_by_name(role.to_s.camelize)
Run Code Online (Sandbox Code Playgroud)
添加双重感叹号是否会为评估添加一些内容?
免责声明:不是红宝石程序员,而是对此有所了解.
!!,double bang或"not not",可能会将值转换为布尔值.一个!返回布尔反对,然后另一个bang将其翻转为其正常的布尔值.
这是一个双重否定,导致一个布尔值:
irb(main):016:0> !1
=> false
irb(main):013:0> !0
=> false
irb(main):014:0> !nil
=> true
irb(main):015:0> !!nil
=> false
Run Code Online (Sandbox Code Playgroud)