什么时候使用nil,空白,空?

时间:2009-10-31 17:08:55

标签: ruby-on-rails ruby

是否有关于如何区分.nil?.blank?.empty?的指南?

我通常总是很困惑何时在我的应用程序中使用它们,因为它们似乎都意味着相同但具有不同的含义。

有没有人在血腥细节上有任何备忘单?

4 个答案:

答案 0 :(得分:187)

在这里,我使用所有案例enter image description here

创建了这个有用的表

答案 1 :(得分:181)

答案 2 :(得分:7)

  • nil?已在所有Objects上定义,只会在true单身人士上返回nil

  • blank?也在所有对象上定义,如果对象也响应true并且为空,或者为empty?类型值,则返回false!object始终为true)。

  • empty?在几个集合对象上定义,如果没有元素,则为true。它也在String上定义。

请注意blank?ActiveSupport而不是 Rails 1.8

答案 3 :(得分:5)

我找到了一个很好的解释here

  

零?测试对象是否   完全是零,这是否是   一个也只想要的实例   NilClass。

     

空?是一种方法的一些对象   回应。你需要检查一下   每个案例的文件。对于   例如,空数组就是一个   不是零(这是一个数组吧?)和   没有元素。空字符串是   一个不是零(它是一个字符串   对吗?)并且没有字节,没有。

     

空白?你问的方法没有   属于Ruby,它是一个Rails   延期:   http://api.rubyonrails.com/classes/Object.html#M000011

如果您点击该帖子末尾的链接,您会发现blank?方法只是将nil?empty?方法调用结合起来。