11、Ruby中的对象、类、模块及方法与常量查找机制解析

Ruby中的对象、类、模块及方法与常量查找机制解析

1. Ruby对象与类的内部表示

在Ruby中,对象和类有着独特的内部表示方式。Ruby使用 RObject 结构来表示自定义类以及部分预定义类的实例。 RObject 结构十分简单,仅包含一个指向对象类的指针、一个存储实例变量值的表以及变量数量的计数。基于此,我们可以对Ruby对象下一个简单的定义:每个Ruby对象都是类指针和实例变量数组的组合。

需要注意的是,在Ruby里一切皆对象。无论何时在程序中使用一个值,它都是一个对象,必然拥有类指针和实例变量。

同时,Ruby使用特殊的C结构来表示许多常用的内置类的实例,这些对象被称为“通用”对象。例如,使用 RString 结构表示 String 类的实例, RArray 表示 Array 类的实例, RRegexp 表示 Regexp 类的实例。尽管这些结构各有不同,但每个通用对象同样会保存一个类指针和一个实例变量数组。另外,对于一些简单的值,如小整数和符号,Ruby并不使用C结构,而是直接将这些值保存在 VALUE 指针中。

与简单的对象不同,Ruby类的内部结构较为复杂。 RClass 结构与 rb_classext_struct 结构协同工作,保存了大量信息。因此,我们可以对Ruby类给出一个更复杂的定义:一个Ruby类是一个Ru

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值