Swift 入門 | クラスの基本 | 計算プロパティ

継承のほかにも覚えておくべき機能がいくつかある。ここでは計算プロパティについて説明する。

プロパティは、クラスに値を保存する変数である。値をそのまま入れ替えられるため、許可された範囲でどのような値でも保持できる。計算プロパティを使うと、値の読み書きをプログラムで制御できる。

計算プロパティは次のように記述する。

var プロパティ : 型 {
    get {
        ... 処理 ...
        return 値
    }
    set {
        ... 処理 ...
    }
}

プロパティ宣言の後に波かっこを記述し、その中に getset のブロックを用意して値の読み書きを定義する。get だけを記述すると、読み取り専用のプロパティになる。

次に計算プロパティを使う例を示す。

class Friend {
    var name:String

    var old:Int

    var age:Int {
        get {
            return old
        }
        set {
            if newValue > 0 {
                old = newValue
            }
        }
    }

    init(name:String, age:Int) {
        self.name = name
        self.old = age
    }

    func printData() {
        print("\(self.name) (\(age))")
    }
}

var you = Friend(name: "Taro", age: 30)
you.printData()

この例では age という計算プロパティを使っている。実際の値は old プロパティに保存する。計算プロパティで内部の値を保持する場合は、このように実際の保存場所を別に用意する必要がある。