2

David A. Black在他的书中说:

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

潜艇的危险!(一种用替换字符串替换字符串中匹配模式的方法)部分是它改变了它的接收者,部分是它nil在没有发生变化的情况下返回 - 不像 sub,它总是返回原始字符串的副本和替换(或不更换)。

虽然以上都明白了,但无法理解他在下面试图说什么。

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

基于什么概念,我们可以对方法进行分类并将其放入破坏性或危险列表中?

4

1 回答 1

1

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

不要假设这method!会改变属性的值。这种情况经常发生,但不是规则。

于 2013-03-09T16:18:02.443 回答