コンピューテッド・プロパティ(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