《Ruby 元编程》笔记

元编程是编写在运行时操纵语言构建的代码。

一 对象模型

1 对象的实例变量存放在对象中,而对象的方法存在于对象自身的类。


2 类自身也是对象。

3 任何大写字母开头的引用(包括类名和模块名)都是常量。

4 当调用一个方法时,ruby会做两件事:

1)找到这个方法,这个过程称为方法查找;

2)执行这个方法,为了做到这一点,ruby需要一个叫做self的东西。

二 方法

1 动态方法,动态派发


2 动态代理,白板


第三章 代码块

1 可以把一个块放在大括号中,也可以放在do..end关键字中。

      只有在调用一个方法时才能定义一个块。块会被直接传递给这个方法,然后该方法可以用yield关键字回调这个块。

2 作用域门:class,model,def关键字

3 穿越作用域门:

1)扁平化作用域:

  • Class.new()代替class;

  • Model#define_method代替def

2)共享作用域

在一个扁平作用域中定义了多个方法,这几个方法用一个作用域门保护,并共享绑定。

4 instance_eval()上下文探针

5 Proc对象

一个Proc就是一个转换成对象的块。

可以用Proc#call()方法来执行由块转化来的对象,称为延迟执行。

把块转化为Proc对象的方法:

  1. Proc.new
  2. lambda()
  3. proc()
  4. &操作符

第四章 类定义

















  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值