0

構造体、列挙型などの値型の Swift のインスタンス メソッド内からインスタンス プロパティを変更できないのはなぜですか? クラスのような参照型に対して同じことが機能するのはなぜですか?

ここに画像の説明を入力

構造体で関数を変更すると、クラス インスタンス メソッドのように動作しますか?

4

1 に答える 1

1

Swift の設計は、Haskell、F#、Scala、Erlang などの関数型プログラミング言語の影響を強く受けています。関数型プログラミングのコア原則の 1 つは、データが不変であるということです。関数はデータを操作し、結果として新しい値を生成します。データをその場で変更するのではなく、副作用を排除します。これらの影響は、不変値型、マップ関数、ラムダ関数、オプションの値、パターン マッチング (Swift のスイッチ) など、Swift の多くの場所で見られます。

于 2015-02-06T15:03:49.020 に答える