4

C# または Java のクラスから不変のコレクションを返す必要がある場合は、IEnumerable インターフェイスとして返します。Rubyでこれを行う標準的な方法は何ですか? クローン?氷結?

4

1 に答える 1

5

RuntimeError変更を試みた場合に発生させたい場合は、 を使用しますfreeze()。呼び出し元がデータを変更できないようにするだけの場合clone()、良い選択です。

freeze() は期待どおりに機能しない可能性があることに注意してください。

個人的には、 を必要としたことはありませんがfreeze()clone()便利なことがよくあります。

于 2012-07-11T03:43:04.587 に答える