Swift の String 型は、値型です。関数やメソッドに渡されるときや、定数や変数に代入されるとき、String 値はコピーされます。どのケースにおいても、オリジナルのバージョンではなく、コピーされた String 値が生成されます。値型は、Structures and Enumerations Are Value Types で説明されています。

Swift のデフォルトコピーな String の動作により、String 値が関数やメソッドに渡されたときに、それがどこから来ているかにかかわらず、まさにその String 値を保持しているということが明らかです。自分自身で変更しないかぎり、渡された文字列が変更されていないということに確信を持つことができます。

Swift のコンパイラは、本当に必要なときにだけ実際にコピーするように、文字列の利用を最適化しています。これにより、常に最高のパフォーマンスで、値型としての文字列を扱うことができます。


Portions of this page are translations based on work created and shared by Apple and used according to terms described in the Creative Commons Attribution 4.0 International License.