介绍
我在实践中写代码的时候,前辈曾经问过我以下三个不同之处。
- 没有?
- 为空?
- 空白?
接收器中都没有值?它在确认时使用
我自己没有考虑就使用它,所以我决定详细调查它,所以我将它作为备忘录留下。
如果有任何错误或补充,请告诉我。
环境
红宝石 2.7.1
导轨 6.0.5
三者的区别是什么
零?
根据 Ruby 文档:
如果接收者为 nil,则返回 true。
如果接收者本身不存在,也就是说,如果为 nil,则返回 true。※后记
nil 是一个对象,用于表示某物的缺失。
这是一个附言,因为您指出接收者不可能不存在。
空的?
根据 Ruby 文档:
如果字符串为空(即长度为 0),则返回 true。
如果为空则为真,与 nil 不同。
由@scivola 指出。
empty? 方法好像有很多种,具体请看评论区。空白的?
@koki_73 和 @scivola 指出,所以我添加了它。
根据 Rails 官方的说法如果对象为 false、空或空白字符串,则该对象为空白。例如,nil、''、''、[]、{} 和 false 均为空白。
字面上地
如果对象为假、空或空字符串,则为空。例如,nil、''、''、[]、{}、false 都是空白。
这个已经写完了。
方便哦。如果你不理解和使用它,它可能会导致错误。
blank? 表示检查 nil? 和 empty? 一起,如果其中一个为真,则返回真!
如果方法为 nil,则返回 false,如果为 false,则返回 NoMethodError,如果方法为空。
但是空白?将是真的。这次我会试着亲眼看看。
我试过了
将 nil1 分配给一个变量,将 "" 分配给另一个变量。
nil_str = nil empty_str = ""尝试每种方法。
如果没有?
我们来看看nil?的情况。
只有分配了 nil 值的接收者才返回 true。空的?
我们来看看空的情况?
接收者为“”时为真。
此外,对 nil 值使用 empty? 方法将导致 NoMethodError。空白的?
让我们看一下空白? 案例。
一个 nil 接收器和一个 "" 接收器都返回 true。有这样的区别吗?
其他方法
这次调查的时候发现了一些东西,所以补充一下。
当下?
present? 是一种与空白?相反的方法。
您可以看到它将相反的值返回为空白?。存在吗?
exists? 方法是返回一个布尔值来判断数据库中是否存在满足指定条件的记录的方法。如果存在则返回 true,如果不存在则返回 false。
换句话说,如果数据库中有匹配的记录,则返回 true,如果没有记录,则返回 false。
User.exists?(name: 'クロロ')在上述情况下,如果用户表的名称记录有字符串 chloro 则返回 true。
综上所述
我想,在这个地方的气氛中,有相当多的方法令人惊讶地使用了。
如果你书写和移动流畅,你经常会让它处于你并不真正理解它的状态。
我的时间有限,但我想停下来继续开发一个没有错误的应用程序。参考
原创声明:本文系作者授权爱码网发表,未经许可,不得转载;
原文地址:https://www.likecs.com/show-308626649.html