Ruby中的破坏性方法和爆炸方法

时间:2013-03-09 16:13:45

标签: ruby

David A. Black 在他的书中说:

  

危险可能意味着编写该方法的人想要它的意思。在内置类的情况下,它通常意味着这种方法,不像它的非爆炸等价,   永久修改其接收器。但并不总是这样:退出!退出是一种危险的替代方案,因为它不会在程序退出时运行任何终结器。

     

分危险! (替换字符串替换字符串中匹配模式的方法)部分是它更改其接收器,部分是它返回nil如果没有发生更改 - 不像sub,它总是返回一个副本原始字符串替换(或不替换)。

虽然以上所有内容都被理解,但无法理解他在下面所说的内容。

  

此外,不要假设爆炸方法和破坏性方法之间存在直接关联。它们经常重合,但它们不是一回事。

基于什么观念,我们可以将方法分类并将其置于破坏性或危险列表中?

1 个答案:

答案 0 :(得分:1)

破坏性方法是那些改变它们被调用的对象的属性值的方法。所以他所说的可以重申为:

  

不要认为method!会更改属性的值。通常情况就是这样,但不是规则。