11、Ruby 方法参数类型、可见性与委托的最佳实践

Ruby 方法参数类型、可见性与委托的最佳实践

1. 方法参数类型的使用

在 Ruby 中,随着不断添加参数,情况会变得越来越糟糕。很少有程序员愿意在传递一个可选参数之前先传递四个 nil 参数。如果要给现有方法添加可选参数,除非有充分理由将其作为可选位置参数添加,否则最好将其作为可选关键字参数添加。

1.1 块参数

许多 Ruby 程序员认为块是 Ruby 最好的特性之一。块语法的简洁性使得向方法传递块变得容易,而且许多核心方法都接受块。块的灵活性非常出色,可用于循环(如 Kernel#loop )、资源管理(如 File.open )、排序(如 Array#sort )、处理缺失数据(如 Hash#fetch )等多种用途。块可以使用 return 跳出调用作用域,或者使用 next break 跳出块作用域,这也是其如此灵活的另一个原因。

由于块对于 Ruby 的惯用用法非常重要,并且每个方法只能有一个块参数,因此在考虑方法如何使用块时,应该比考虑其他类型的参数更加慎重。可以说,块参数是方法接受的最重要的参数。这是因为,如果要以向后兼容的方式更改现有方法的行为,添加可选位置参数或可选关键字参数相对容易。但是,一旦确定了方法如何处理块,就必须保持该块参数的行为不变,除非你想破坏向后兼容性。

以下是一个示例:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值