在Ruby中,调用present?
my_value.present?
vs !!
!!my_value
答案 0 :(得分:5)
.present?
是Rails的一部分,而不是标准Ruby类库的一部分。 Rails documentation for .present?
表示如果对象“不是空白”,则为true
。通常用于确定数据库属性的实际值不是nil
或空白。
> x = ' '
> x.present?
false
> x = nil
> x.present?
false
!!
是两个!
,一个标准的Ruby运算符。 !
是Ruby逻辑“非”运算符。在Ruby中,空白值是正确的。结合使用两个!
可以让您在Ruby中获取一个值,并根据值是真还是假得到一个简单的布尔值true
或false
。
> x = ' '
> !!x
true # a blank is truthy
> x = nil
> !!x
false # nil is falsey