这是我的一个有根据的猜测,也许Matz会在某个时候看到这个问题,并给我们一个明确的答案,希望这将在此期间做.
你可能知道,ruby至少在早期就受到了perl的影响(这就是为什么我们有变量如$ @和$ _等).Perl有一个undef关键字/函数(例如,如果你声明一个没有初始化的变量 - 它的值是未定义的).我想说,在过去的某个时候,Ruby也意味着有类似的东西(即变量可以有一个未定义的值).我们怎么知道呢?根据它的上下文.
如您所见,该注释描述object_id了各种Ruby对象的派生方式.关于这方面的一些细节可以在这里找到.但是,实质上我们知道以下内容:
false.object_id == 0
true.object_id == 2
nil.object_id == 4
Run Code Online (Sandbox Code Playgroud)
这是评论所暗示的,事实确实如此,你可以破解一个irb会话并自己试一试.看起来好像undef有object_id6个.
现在,undef确实是Ruby中的一个保留字,但它不是一个特殊的对象nil,false而且true,正如我们所知,它是用于取消定义方法的关键字.
所以,要回答你的问题,没有undef对象,它没有类,你无法访问它.undef意味着服务的目的是由nil我们今天所知的Ruby中的对象提供服务.但是,它仍然留在代码中作为时代遗留下来的遗产,因为我们更加好奇地发现和谜题.
| 归档时间: |
|
| 查看次数: |
1311 次 |
| 最近记录: |