RED PRECIOUS STONE Series

Ruby core: scope & self

RED PRECIOUS STONE Series

ruby的变量作用域

Name begins with Variable scope
[a-z] or _ local variable
$ global variable
@ instance variable
@@ class variable

RED PRECIOUS STONE Series

ruby的常量作用域

1. 常量必须以大写字母开头

2. 常量不能被动态赋值

3. 定义在class或module中的常量可以被其祖先访问

4. 定义在非class和module中的常量属于全局作用域,能够被直接访问,或者使用::前缀直接访问

5. ::作为域解析运算符,主要用于嵌套代码间的常量访问

6. 当::作为前缀访问某个常量时,该路径为绝对路径,否则为相对路径

RED PRECIOUS STONE Series

触发作用域变更的条件

1. class定义,变量/常量

2. module定义,变量/常量

3. 方法定义,变量

4. 块定义,变量

RED PRECIOUS STONE Series

self引用

1. 指向当前scope所属的对象

2. 当方法调用有receiver时,self指向receiver对象

3. 当方法调用无receiver时,self指向调用语句所在的scope所属对象

4. self一般只用于元类定义,或元方法的定义

RED PRECIOUS STONE Series

方法查询

1. 查找元类

2. 查找元类的extend module

3. 查找类的prepend module

4. 查找类

5. 查找类的include module

6. 查找继承链,重复3-6,直到BasicObject

7. 回到1),查找method_missing,直到BasicObject

8. 抛出异常

RED PRECIOUS STONE Series

理解Top-level

1. main对象

2. 定义方法

3. 定义常量

Code DoJo

编程                   道场

1. 同一时刻只能有一对pair在台上工作;

2. pair的形式始终是左侧为driver, 右侧为navigator(面向大屏幕方向);

3. 每对pair只有5分钟时间书写代码;

4. 每5分钟整个团队按逆时针方向移动一个位置;

5. 除了当前pair,其余成员都不能参与任何讨论;

6. 每次课程结束后,当前座位状态将保留至下一次;

7. 座位状态将不定期重置。

RED PRECIOUS STONE Series

期中测试

RED PRECIOUS STONE Series

编写一个rake task,实现以下功能(所有测试要求使用minitest编写):

#运行fizz buzz的所有测试

rake test:fizz_buzz

#运行auto wrap的所有测试

rake test:auto_wrap

#运行numbers to words的所有测试

rake test:numbers_to_words

#运行上述所有测试

rake test:all

rake test

Ruby core: scope & self

By hanyi8000

Ruby core: scope & self

  • 1,460