Swift 入門 | クラスの基本 | 型プロパティと型メソッド

通常のプロパティとメソッドは、インスタンスを作成してから利用する。クラスには、クラスから直接利用できるプロパティとメソッドを用意することもできる。これらを型プロパティ、型メソッドと呼ぶ。

型プロパティと型メソッドを宣言するときは、先頭に class 修飾子を付ける。すると、クラスから直接呼び出せる。

型プロパティと型メソッドを使うときは、次の点に注意する。

  • 型プロパティとして作成できるのは計算型プロパティである。通常の格納プロパティは利用できない。クラスに格納する変数がないため、計算型プロパティの setter を使う場面も限られる。

  • 型メソッド内で利用できるのは、型メソッドと型プロパティだけである。インスタンスで使う通常のプロパティとメソッドは利用できない。

次に実際の例を示す。

class Exchange {
    class var rate:Double {
        return 1005.0
    }
    
    class func DollarToWon(d:Double)->Int {
        return Int(d * rate)
    }
    
    class func WonToDollar(y:Int)->Double {
        return Double((y * 100) / Int(rate)) / 100
    }
}

print(Exchange.DollarToWon(1.5))
print(Exchange.WonToDollar(1500))

この例では、ウォンからドル、ドルからウォンへ換算する Exchange クラスを定義している。rate 型プロパティと、計算を行う 2 つの型メソッドを用意している。このように計算を中心とするクラスは、毎回インスタンスを作る必要がないため、型メソッドとして提供すると効率よく利用できる。