Ruby编程:从可调用对象到类定义的深入探索
可调用对象概述
可调用对象是可以被求值的代码片段,并且它们自带作用域。常见的可调用对象有以下几种:
- 块(Blocks) :严格来说它们不是对象,但仍可被调用,在定义它们的作用域内被求值。
- Proc :是 Proc 类的对象,和块一样,在定义它们的作用域内被求值。
- Lambda :同样是 Proc 类的对象,但与普通的 Proc 有细微差别。它们和块、 Proc 一样是闭包,在定义它们的作用域内被求值。
- 方法(Methods) :绑定到一个对象,在该对象的作用域内被求值。也可以从其作用域中解绑并重新绑定到另一个对象或类。
不同的可调用对象表现出细微不同的行为。在方法和 Lambda 中, return 从可调用对象中返回;而在 Proc 和块中, return 从可调用对象的原始上下文返回。不同的可调用对象对错误参数数量的调用也有不同的反应。方法更严格, Lambda 几乎同样严格(除了一些特殊情况),而 Proc 和块更宽容。尽管存在这些差异,仍然可以在不同的可调用对象之间进行转换,例如使用 Proc.new 、
超级会员免费看
订阅专栏 解锁全文
5

被折叠的 条评论
为什么被折叠?



