.nil? , .empty?, .blank? .present? 的区别(转)_Ruby_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > Ruby > .nil? , .empty?, .blank? .present? 的区别(转)

.nil? , .empty?, .blank? .present? 的区别(转)

 2011/9/5 8:10:29  zhangym124  http://xuantan.iteye.com  我要评论(0)
  • 摘要:首先这三个都是判空的。而.nil?和.empty?是ruby的方法。.blank?是rails的方法.nil?判断对象是否存在(nil)。不存在的对象都是nil的.empty?对象已经存在,判断是否为空字段,比如一个字符串是否为空串,或者一个数组中是否有值。有点像判断长度是否为零,呵呵.blank?相当于同时满足.nil?和.empty?。railsAPI中的解释是如果对象是:false,empty,空白字符.比如说:"","",nil,[],和{}都算是blank。(object.blank
  • 标签:区别

首先这三个都是判空的。 而 .nil? 和 .empty? 是ruby的方法。 .blank? 是rails的方法

.nil? ? ? ? 判断对象是否存在(nil)。不存在的对象都是nil的

.empty?? 对象已经存在,判断是否为空字段,比如一个字符串是否为空串,或者一个数组中是否有值。有点像判断长度是否为零,呵呵

.blank? ? 相当于同时满足 .nil? 和 .empty? 。railsAPI中的解释是如果对象是:false, empty, 空白字符. 比如说: "", " ", nil , [], 和{}都算是blank。?? (object.blank? 相当于 object.nil?||object.empty?)

?

.present ? (The opposite of Rails blank? is?present?) ?

?

下面是一些例子

nil.nil?
=> true

false.nil?
=> false

1.nil?
=> false

0.nil?
=> false

"".nil?
=> false

[].nil?
=> false

"".empty?
=> true

"abc".empty?
=> false

[].empty?
=> true

[1, 2, 3].empty?
=> false

1.empty?
=> NoMethodError    #说明 empty? 方法不能用于整数

  p true.blank??? ? ? FALSE
??? p false.blank? ??? ?TRUE
??? p "true".blank??? ?FALSE
??? p "".blank? ??? ? ?? TRUE
??? p "\n".blank? ? ? ? TRUE
??? p '\n'.blank? ?? ? ? FALSE
??? p 'true'.blank??? ? FALSE
??? p ''.blank? ?? ? ? ?? TRUE
??? p 1.blank?? ? ? ? ?? FALSE
??? p [].blank? ? ? ? ?? TRUE
??? p [1].blank??? ? ?? FALSE

发表评论
用户名: 匿名