デビッドA.ブラックは彼の本の中で言った:
危険とは、メソッドを作成する人が意味したいことを意味する場合があります。組み込みクラスの場合、これは通常、このメソッドが、同等の非バングとは異なり、レシーバーを永続的に変更することを意味します。ただし、常にそうとは限りません。終了してください。プログラムの終了時にファイナライザーを実行しないという意味で、終了するのは危険な代替手段です。
サブの危険!(文字列内の一致するパターンを置換文字列に置き換える方法)一部はレシーバーを変更し、一部は
nil
変更が行われなかった場合に返すというものです。これは、常に元の文字列のコピーを置換して返すsubとは異なります。 (または交換なし)作成。
上記のすべては理解されていますが、彼が以下で何を言おうとしているのか理解できませんでした。
さらに、強打法と破壊的方法の間に直接的な相関関係があると想定しないでください。それらはしばしば一致しますが、同じものではありません。
どのような概念に基づいて、メソッドを分類し、破壊的または危険なリストに入れることができますか?