Possible Duplicate:
A concise explanation of nil v. empty v. blank in Ruby on Rails
谁能告诉我Ruby中nil?
、blank?
和empty?
的区别吗?
Possible Duplicate:
A concise explanation of nil v. empty v. blank in Ruby on Rails
谁能告诉我Ruby中nil?
、blank?
和empty?
的区别吗?
在Ruby中,nil
在一个对象中(类NilClass
的一个实例).这意味着可以对其调用方法.nil?
是Ruby中的一个标准方法,可以对all个对象调用,对nil
个对象返回true
,对其他任何对象返回false
.
empty?
是一个标准的Ruby方法,用于some个对象,比如数组、哈希和字符串.它的确切行为将取决于特定对象,但如果对象不包含元素,则通常返回true
.
blank?
不是标准的Ruby方法,但Rails将其添加到all个对象中,并返回true
表示nil
、false
、空或空白字符串.
因为empty?
并不是为所有对象定义的,所以如果在nil
上调用empty?
,则会得到NoMethodError
,因此为了避免编写if x.nil? || x.empty?
之类的内容,Rails添加了blank?
方法.
在回答之后,我发现了一个早期的问题,"How to understand nil vs. empty vs. blank in Rails (and Ruby)",所以你也应该判断一下这个问题的答案.