21、Ruby编程中的默认对象(self)与作用域解析

Ruby编程中的默认对象(self)与作用域解析

在描述和讨论计算机程序时,我们常常会使用空间甚至拟人化的隐喻。比如,我们会说处于一个类定义中,或者从一个方法调用返回。程序运行时,上下文和方向会不断变化。理解Ruby程序中不同元素在特定上下文中的含义和作用,对于编写和理解代码至关重要。本文主要聚焦于Ruby编程中的两个核心主题:作用域和 self ,同时也会涉及方法访问规则以及顶级方法的相关内容。

1. 作用域与self的基本概念

在Ruby中,作用域规则决定了变量(主要是变量)的可见性。了解自己所处的作用域非常重要,这样才能明确变量的引用对象,避免与不同作用域中同名的变量混淆。

self 并非一个概念,而是一个对象。在程序运行过程中, self 会不断变化,但在每一个时刻,只有一个对象扮演 self 的角色。它就像是程序中的第一人称 “我”,如同多个人以第一人称叙述的书籍,“我” 的角色会不断转换。

2. 谁是self,以及在何处

要确定哪个对象是 self ,需要了解当前所处的上下文。实际上,需要关注的上下文并不多,主要包括顶级上下文(在进入任何其他上下文之前,如类定义)、类定义块、模块定义块和方法定义块。 self 由所处的上下文决定,具体规则如下表所示:
| 上下文 | 示例 | 哪个对象是self? |
| — | — | — |
| 程序顶级 | 任何其他块之外的代码 | main(内置的顶级默认对象) |

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值