相对比 !!运营商与现在?

时间:2019-06-18 00:47:01

标签: ruby-on-rails ruby

在Ruby中,调用present?

有优势
my_value.present?

vs !!

!!my_value

1 个答案:

答案 0 :(得分:5)

.present?是Rails的一部分,而不是标准Ruby类库的一部分。 Rails documentation for .present?表示如果对象“不是空白”,则为true。通常用于确定数据库属性的实际值不是nil或空白。

> x = ' '
> x.present?
false
> x = nil
> x.present?
false

!!是两个!,一个标准的Ruby运算符。 !是Ruby逻辑“非”运算符。在Ruby中,空白值是正确的。结合使用两个!可以让您在Ruby中获取一个值,并根据值是真还是假得到一个简单的布尔值truefalse

> x = ' '
> !!x
true    # a blank is truthy
> x = nil
> !!x
false   # nil is falsey