.nil?
-
Ruby方法
-
.nil?方法被放置在Object类中,可以被任何对象调用,如果是nil则返回true -
在Rails中只有nil对象才会返回
true
nil.nil? #=> true anthing_else.nil? #=> false a = nil a.nil? #=> true "".nil #=> true
.empty?
-
Ruby方法
-
如果对集合之外的对象调用
.empty?方法,则会抛出NoMethodError -
可以在字符串、数组、hash这几种集合中使用,且只有当集合长度(length)为0时才会返回
true
"".empty = true
" ".empty? = false
.blank?
-
Rails方法
-
与
.empty?的区别: 对于还有空格的字符串也会返回true,并且nil返回的结果也未true -
可以在任意对象上调用,不限制于集合对象
nil.blank? = true
[].blank? = true
{}.blank? = true
"".blank? = true
5.blank? == false
.present?
-
Rails方法
-
如果一个对象不是
blank,即会返回true -
内部实现其实是调用的
·blank?,如下代码:
# File activesupport/lib/active_support/core_ext/object/blank.rb, line 22
def present?
!blank?
ends