`
jsntghf
  • 浏览: 2527788 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

为什么ruby中的nil.object_id等于4

阅读更多

原因是因为nil是一个固定的object,在$rubyhome\lib\1.8\i386-mswin32中的ruby.h头文件里面有如下特殊对象的构造。

 

/* special contants - i.e. non-zero and non-fixnum constants */
#define Qfalse ((VALUE)0)
#define Qtrue  ((VALUE)2)
#define Qnil   ((VALUE)4)
#define Qundef ((VALUE)6) /* undefined value for placeholder */

 

在rails的activesupport里面,也有一个whiny_nil.rb的类有些相关的说明。

分享到:
评论

相关推荐

    Ruby-graphqlruby的插件它有助于仅从数据库中选择所需的字段

    object.title : nil end def content if context[:current_user].can_access_full_content? object.content else "内容已被截断..." end end end ``` 在上面的例子中,我们不仅限于从数据库中简单地获取...

    Ruby多线程编程初步入门

    puts "Thread #{Thread.current.object_id} mycount is #{Thread.current[:mycount]}" } end arr.each(&:join) ``` 这段代码中,每个线程都会将自己的计数值存储在线程局部变量`mycount`中,并输出该值。这样...

    Ruby-GraphQL的ActionPolicy集成

    ActionPolicy则是Ruby中的一个授权库,它为Rails应用提供了基于对象的策略模式实现,帮助开发者更好地管理权限控制。本文将深入探讨如何将ActionPolicy与GraphQL集成,以在你的Ruby应用中实现安全且灵活的权限管理。...

    AFNetworking2.5使用Demo

    在 AFNetworking 2.5 版本中,这个库继续为开发者提供了高效且可靠的网络编程解决方案。本文将详细介绍 AFNetworking 2.5 的主要功能和使用方法。 ### 1. 安装与集成 AFNetworking 可通过 CocoaPods 进行安装。在 ...

    iOS--AFNetworking第三方

    [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation * _Nonnull operation, id _Nullable responseObject) { NSLog(@"Download completed."); } failure:^(AFHTTPRequestOperation * _Nullable ...

    ios-iOS数据的网络请求.zip

    本教程以"ios-iOS数据的网络请求.zip"为主要内容,聚焦于iOS平台上的网络编程技术,特别是使用了知名的第三方库AFNetworking进行网络请求的实践示例。 AFNetworking是一款强大的Objective-C框架,它简化了iOS和OS X...

    iOS 二维码扫描

    在iOS开发中,二维码扫描是一项常见的功能,它可以让用户通过手机摄像头快速获取和解析二维码中的信息,例如网址、文本、联系人信息等。本篇将详细介绍如何在iOS应用中实现二维码扫描,主要涉及两个库:ZBar和系统...

    IGScraperKit:在 Objective-C 或 Ruby 中创建动态网页抓取工具!

    在 Objective-C 或 Ruby 中创建动态网络爬虫。 用法 创建一个刮板: # import " IGScraperKit.h " IGScraper* scraper = [IGScraper scraperWithBlock: ^ id (IGXMLNode* node, NSString * url) { return [[[node...

    iOS图片上传

    [manager.uploadTaskWithRequest:request fromData:imageData progress:nil completionHandler:^(NSURLResponse * _Nonnull response, id _Nullable responseObject, NSError * _Nullable error) { if (error) { ...

    swift-阿里百川IM及时通讯

    NotificationCenter.default.addObserver(self, selector: #selector(handleMessageNotification(_:)), name: AliMessageReceivedNotification, object: nil) @objc func handleMessageNotification(_ notification...

    ios 简单网络

    [manager POST:@"https://api.weibo.com/2/statuses/share.json" parameters:parameters progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { // 处理成功的回调 } ...

    在Go语言中使用JSON的方法

    - 结构体类型(`struct`)会转换为JSON对象(Object),并且其成员(字段)会根据类型递归地进行编码。 - 数组或切片(`[]T`)会被转换为JSON数组(Array)。 - `[]byte`类型的数据会先进行base64编码,再以JSON字符...

Global site tag (gtag.js) - Google Analytics