Ruby 方法参数类型、可见性与委托的最佳实践
1. 方法参数类型的使用
在 Ruby 中,随着不断添加参数,情况会变得越来越糟糕。很少有程序员愿意在传递一个可选参数之前先传递四个 nil 参数。如果要给现有方法添加可选参数,除非有充分理由将其作为可选位置参数添加,否则最好将其作为可选关键字参数添加。
1.1 块参数
许多 Ruby 程序员认为块是 Ruby 最好的特性之一。块语法的简洁性使得向方法传递块变得容易,而且许多核心方法都接受块。块的灵活性非常出色,可用于循环(如 Kernel#loop )、资源管理(如 File.open )、排序(如 Array#sort )、处理缺失数据(如 Hash#fetch )等多种用途。块可以使用 return 跳出调用作用域,或者使用 next 或 break 跳出块作用域,这也是其如此灵活的另一个原因。
由于块对于 Ruby 的惯用用法非常重要,并且每个方法只能有一个块参数,因此在考虑方法如何使用块时,应该比考虑其他类型的参数更加慎重。可以说,块参数是方法接受的最重要的参数。这是因为,如果要以向后兼容的方式更改现有方法的行为,添加可选位置参数或可选关键字参数相对容易。但是,一旦确定了方法如何处理块,就必须保持该块参数的行为不变,除非你想破坏向后兼容性。
以下是一个示例:
def
超级会员免费看
订阅专栏 解锁全文
26

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



