最近的Ruby for Rails读书笔记

本文深入探讨了Ruby中module混入、全局变量使用、self指代规则、类命名冲突解决方法及作用域等高级主题,帮助读者更好地理解Ruby的内部机制。
1,module的mix-in
两个module定义同一方法,都include后,后include的module的方法有效

2,全局变量以$开头
Ruby自带的全局变量有
$:表示在你load外部文件时Ruby搜索的path
$$表示Ruby进程ID

3,self的指代
[code]
Context Example Which object is self?
Top level of program Any code outside of other blocks main(built-in top-level default object)
Class definition class C The class object C
Module definition module M The module object M
Method definitions 1. Top level main(built-in top-level default object)
def method_name
2. Instance method definition An instance of C, responding to method_name
class C
def method_name
3. Instance method definition in module I. Individual object extended by M
module M II. Instance of class that mixes in M
def method_name
4. Singleton method(including class obj
methods)
def obj.method_name
[/code]

4,定义与Ruby内建类重名的类的时候,如定义Violin::String,我们要在Violin里调用Ruby内建的String类时,使用::String

5,Ruby三种作用域,public/protected/private,默认为public
private方法不能使用explicit receiver,只能被implicit receiver self调用,如可以method_name,而不能obj.method_name
protected方法的调用保证了self的class和被调用的另一个对象的class相同

6,top-level方法为Kernel模块的private instance methods
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值