スウィフトと変異構造体
Swiftでの値の型の変更に関して、私が完全には理解していないことがあります。 「The Swift Programming Language」のiBookには、次の ように記載されています。デフォルトでは、値タイプのプロパティは、そのインスタンスメソッド内からは変更できません。 そして、これを可能にするために、mutating構造体と列挙型の内部でキーワードを使用してメソッドを宣言できます。 私には完全に明確ではありませんが、これは、構造体の外部から変数を変更することはできますが、独自のメソッドから変更することはできません。オブジェクト指向言語の場合と同様に、これは私には直観に反するようですが、通常は変数をカプセル化して、内部からしか変更できないようにします。構造体では、これは逆になります。詳しくは、次のコードスニペットをご覧ください。 struct Point { var x = 0, y = 0 mutating func moveToX(x: Int, andY y:Int) { //Needs to be a mutating method in order to work self.x = x self.y = y } } var p = Point(x: 1, y: 2) …