コンピューテッド・プロパティ(Computed Property)を使う。
コンピューテッド・プロパティ(Computed Property)は
ゲッターメソッドとセッターメソッドと呼ばれる2つのメソッドを提供するプロパティのこと。
使い方の例
Itemクラスにprice(税抜き価格)とintaxPrice(税込み価格)があります。
intaxPrice
がComputedプロパティとなっており、
intaxPrice
を取得する際にget
メソッドが呼ばれ、
値をセットする際に、set
メソッドが呼ばれます。
class Item {
// 税抜き価格
var price:Double = 0
// 税込み価格
var intaxPrice:Double {
// 値を取得するときに呼ばれる。
get{
return self.price*1.08
}
// 値がセットされるときに呼ばれる。
set(p){
price = p/1.08
}
}
}
下記がアクセスした際の具体的な例です。
item.intaxPrice = 108
でintaxPriceのsetメソッドが呼ばれ、
itemに 108/1.08 (100)
の値がセットされる。
item.intaxPrice
でintaxPriceのgetメソッドが呼ばれ、
itemの値(150)*1.08
の162が返ってくる。
// Itemクラスのインスタンスを作成
var item = Item()
// intaxPrice.setが呼ばれる
item.intaxPrice = 108
// itemに税抜き価格100がセットされている。
println(item.price)
item.price = 150
// intaxPrice.getが呼ばれる。(150*1.08の値=162が返ってくる。)
println(item.intaxPrice)
100
162