9、Ruby编程:从可调用对象到类定义的深入探索

Ruby编程:从可调用对象到类定义的深入探索

可调用对象概述

可调用对象是可以被求值的代码片段,并且它们自带作用域。常见的可调用对象有以下几种:
- 块(Blocks) :严格来说它们不是对象,但仍可被调用,在定义它们的作用域内被求值。
- Proc :是 Proc 类的对象,和块一样,在定义它们的作用域内被求值。
- Lambda :同样是 Proc 类的对象,但与普通的 Proc 有细微差别。它们和块、 Proc 一样是闭包,在定义它们的作用域内被求值。
- 方法(Methods) :绑定到一个对象,在该对象的作用域内被求值。也可以从其作用域中解绑并重新绑定到另一个对象或类。

不同的可调用对象表现出细微不同的行为。在方法和 Lambda 中, return 从可调用对象中返回;而在 Proc 和块中, return 从可调用对象的原始上下文返回。不同的可调用对象对错误参数数量的调用也有不同的反应。方法更严格, Lambda 几乎同样严格(除了一些特殊情况),而 Proc 和块更宽容。尽管存在这些差异,仍然可以在不同的可调用对象之间进行转换,例如使用 Proc.new

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值