2009-04-28 14 views

答えて

6

コード内に変更不可能な構造体を使用することは、あまり制約がありません。後で変更する必要がある場合は、変更可能なものを使用するように変更する必要があります。あなたがそれを外部インターフェースの心に持っていれば、それはもっと制約になるかもしれません。非可変の主な利点は、スレッドの安全性を得ることができ、コードの概念化がより簡単であることです。このため、我々はconstという制約を持っています。データを変更する必要がない場合は、そのように前向きに言う方がよいでしょう。

+0

正確です。それを変更不可能にすると、インタフェース契約が強制されます。 –

+0

また、NSMutableArrayはNSArrayよりわずかに遅いです。速度が必要な場合は、NSArrayまたは手動で管理されたC配列を使用してください。 – rpetrich

2

理由の1つは、YAGNIの原則です。可変配列が必要ない場合は、使用しないでください。したがって、あなたのコードは、理解しやすく、テストし、維持しやすくなります。

コードはコンパイラによって処理されるだけでなく、コーダやテスタによっても読み取られることに注意してください。 NSArrayの代わりにNSMutableArrayを使用すると、その意味があります。彼らにあなたの意図についての虚偽の情報を与えることは逆効果かもしれません。

2

Mssrs INFORMATIONとmouviciel NSArrayの回答に加えて、NSMutableArrayよりも高速です。これは、すべてのstati/mutableコレクションに当てはまります。

関連する問題