25、Ruby 开发:类型系统、扩展创建与解释器嵌入

Ruby 开发:类型系统、扩展创建与解释器嵌入

1. Ruby 类型系统

1.1 内存分配宏

在 Ruby 开发中,有两个重要的内存分配宏:
- REALLOC_N( var, c-type, n ) :重新分配 n c-type 类型的内存空间,并将结果赋值给指针变量 var
- ALLOCA_N( c-type, n ) :在栈上为 n c-type 类型的对象分配内存,当调用 ALLOCA_N 的函数返回时,这些内存将自动释放。

1.2 鸭子类型

Ruby 采用鸭子类型,即较少依赖对象的类型(或类),而更多关注对象的能力。例如, Kernel.exec 方法的第一个参数可以是字符串或包含两个字符串的数组,但代码并不显式检查参数类型,而是调用 rb_check_array_type 方法进行处理。以下是 Kernel.exec 方法的实现代码:

VALUE
rb_f_exec(argc, argv)
int argc;
VALUE *argv;
{
    VALUE prog = 0;
    VALUE tmp;
    if (argc == 0) {
        rb_raise(rb_eArgError, "
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值