Swift 3 documentation状態:機能パラメータがSwiftに変更できないのはなぜですか?パラメータは不変で
関数のパラメータは、デフォルトでは定数です。
関数に渡された場合にもstates that値型がコピーされます。これらは関数またはメソッドに渡されたとき
文字列、配列、および辞書がコピーされています。だから、
、なぜ両方不変とコピーされたパラメータはありますか?引数が定数の場合、関数のスコープにその値のコピーは必要ありません。引数をコピーすると、渡された元の変数は関数内で変更できません(値型の場合)。
さらに、明示的にローカル変数に明示的にコピーすることなく、引数に対してローカル変更を加えることができないため、不変性は不便です。
文書を間違って読んでいますか?これがなぜこのような理由があるのでしょうか?
FYI - 'class'型(参照型)ではなく、' struct'型(値型)であるため、文字列、配列、および辞書がコピーされます。コピーはパラメータとしてではなく、どの割り当てに対しても行われます。 – rmaddy
はい、これは代入には意味がありますが、値の型がコピーされ、パラメータとして不変になる理由が混乱しています(どちらか一方で十分でしょうか?)。 – kennysong
すべてのパラメータを 'let'と考えてください。 – rmaddy