David A. Black在他的书中说:
危险可能意味着编写该方法的人希望它意味着什么。在内置类的情况下,它通常意味着这个方法,不像它的非爆炸等效物,永久地修改它的接收器。但并不总是这样:退出!是退出的危险替代方案,因为它在退出程序时不会运行任何终结器。
潜艇的危险!(一种用替换字符串替换字符串中匹配模式的方法)部分是它改变了它的接收者,部分是它
nil
在没有发生变化的情况下返回 - 不像 sub,它总是返回原始字符串的副本和替换(或不更换)。
虽然以上都明白了,但无法理解他在下面试图说什么。
此外,不要假设 bang 方法和破坏性方法之间存在直接关联。它们经常重合,但它们不是一回事。
基于什么概念,我们可以对方法进行分类并将其放入破坏性或危险列表中?