这三个都是判空的。而 .nil? 和 .empty? 是ruby的方法。 .blank? 是rails的方法
.nil? 判断对象是否存在(nil)。不存在的对象都是nil的
.empty? 对象已经存在,判断是否为空字段,比如一个字符串是否为空串,或者一个数组中是否有值。类似于判断length是否是0
.blank? 可以这样理解:.blank?=(.empty?||.nil?)。如果对象是:false, empty, "", " ", nil, [], 和{}都算是blank。
除了 false 本身之外,所有的 Ruby 对象中nil是唯一一个布尔值为“假”的。基本上所有其他的 Ruby 对象都是“真”的,包括 0
>> "".nil?
=> false
>> nil.nil?
=> true
>> "foo".nil?
=> false
>> "".nil?
=> false
>> nil.nil?
=> true
因为 Ruby 中的一切都是对象,那么 nil 也是对象,所以它也可以响应方法
>> nil.to_s
=> ""
nil 对象本身无法响应 empty? 方法,但是 nil.to_s 可以
>> nil.empty?
NoMethodError: You have a nil object when you didn\'t expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.empty?
>> nil.to_s.empty?
=> true
>> " ".empty?
=> false
注意一点:empty?不能用于整数
分享到:
相关推荐
node.right = remove_node(node.right, min_right.value) unless node.right.nil? return node.left if node.left.nil? return merge_nodes(node.left, node.right) if node.left.left.nil? && node.left.right....
真字符串 可以转换为真值、 true和false的字符串集合。 "true" . truthy? "false" ....nil . falsy? 如果接收者分别为真或假,这些方法将返回true 。 安装 将此行添加到应用程序的 Gemfile 中: gem
user_name: nil, password: nil, authentication: nil, enable_starttls_auto: true }, send_if: lambda { |mail| mail.destinations.select { |address| ["yedingding@gmail.com"].include?(address) }.any? ...
strongSelf.presentViewController(imagePickerController, animated: true, completion: nil) } }, Fail: { //SVProgressHUD.showErrorWithStatus("无法获取照片权限") }) 选取图片来自相机 注意使用[weak ...
@next = nil end end ``` 接下来,我们需要创建一个链表类,该类将包含一系列方法来管理链表。这些方法可能包括初始化链表、添加新节点、删除节点、检查链表是否为空以及遍历链表等。 ```ruby class LinkedList ...
is_bullshit叫废话。... 以下值为合格的总废话: [nil, [], {}, 0, false, 'undefined', 'false', '', '0', 'nil', 'null'] .legit? 和.seems_legit? .bullshit?的对立是.bullshit? nil.bullshit?
return Node.new(key, value) if node.nil? if key < node.key node.left = insert_node(node.left, key, value) else node.right = insert_node(node.right, key, value) end node end # 查找节点 def ...
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow), name: .UIKeyboardWillShow, object: nil) NotificationCenter.default.addObserver(self, selector: #selector...
.first, error == nil { let coordinate = placemark.location!.coordinate print("经度: \(coordinate.longitude), 纬度: \(coordinate.latitude)") } else { print("地理编码失败: \(error?....
查询生成器 Ruby 中 Elasticsearch 的查询构建器。 用法 gem 'es-query-builder' builder = EsQueryBuilder .... # Fields allowed searching with match query. query_fields : [ 'field... # Empty query { size :
#weak_attr_accessor 用于 ... @view_controller = nil else @view_controller = WeakRef . new ( obj ) end end end 安装 将此添加到您的Gemfile : gem 'weak_attr_accessor' 运行bundle install 执照
在业务 处理业务开放时间非常困难,或者至少要为每个应用程序写很多工作。... # => nil (since we've not set any hours yet!) # We want to be open 9am til 6pm on a Monday InBusiness . hours . monday
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; NSDictionary *json = [data objectFromJSONData]; //init object Person *person = [[Person alloc] ...
否则nil 。 例如, range = IPCat . datacenter? ( '52.95.252.0' ) # => instance of IPCat::IPRange range . name # => 'Amazon AWS' IPCat . datacenter? ( '127.0.0.1' ) # => nil 执照 版权所有(c)2013 ...
someOptional == nil ? True branch : False branch 新的: someOptional. isSome ? True branch : False branch someOptional. isNone ? True branch : False branch someOptional. isNotSome ? True branch : ...
gem 'nil_or' 然后执行: $ bundle 或者自己安装: $ gem install nil_or 用法 我什么时候需要它? 而不是写: date_of_birth = params [ :date_of_birth ] ? params [ :date_of_birth ] . to_date : nil ...
使用`NSNotificationCenter`的`addObserver:selector:name:object:`方法,传入当前控制器的引用、一个处理键盘通知的方法选择器、键盘通知的名称以及nil(因为键盘通知的发送者是系统的,所以我们不需要特定的对象)...
guard let contact = contact, error == nil else { print("获取联系人失败:\(error?.localizedDescription ?? "未知错误")") return } contact.givenName = "王五" do { try store.save(contact, to: .main...
let activityViewController = UIActivityViewController(activityItems: itemsToShare, applicationActivities: nil) // 防止在iPad上出现弹出框时,键盘被误触导致关闭 activityViewController....
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow), name: UIResponder.keyboardWillShowNotification, object: nil) NotificationCenter.default.addObserver(self, selector...