是否有关于如何区分.nil?
,.blank?
和.empty?
的指南?
我通常总是很困惑何时在我的应用程序中使用它们,因为它们似乎都意味着相同但具有不同的含义。
有没有人在血腥细节上有任何备忘单?
答案 0 :(得分:187)
在这里,我使用所有案例
创建了这个有用的表答案 1 :(得分:181)
nil?
- 检查变量是否引用某个对象
empty?
- 可用于检查各种对象类型,例如empty string ""或empty array []
blank?
- 检查nil?
或empty?
。
答案 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?
方法调用结合起来。