FC2ブログ
 

米国株テクニカル分析ブログ ソシアルアドバンテージ 香港株、米国株、エリオット波動のブログ

SwiftでのComputed Variable Get Declarationつまりcomputed プロパティの構造と使い方

Computed Variable Get DeclarationがSwiftで難しかったので使い方をばご紹介したい

Computed Variable Get Declarationとは何だっけ?という方のために書いておくとgetとsetがセットになっている変数varのことである

コンピューテッドプロパティ(ComputedPropaty)はgetとsetという関数で処理をすることができる変数である

構造的にはこんな感じ
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
var <#variable name#>: <#type#> {
get {
<#statements#>
}
set {
<#variable name#> = newValue
}
}

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

このComputed Variable Get Declaration、具体的になんなのさ?というとComputed Variable Get Declarationは前もって宣言しておいた変数Aがあるときに、Computed Variable Get Declarationの中で処理して前もって宣言しておいた変数Aに処理結果を代入してくれるものであるとともにその後構成している変数A違う値を再代入した場合でもすで同じ変数の中の計算式を再利用できるものと言える

Computed Variable Get Declarationは使い方的にはこんな感じ


Computed Variable Get Declarationは変数なので値を保持する、だからComputed Variable Get Declarationを使った時にComputed Variable Get Declarationの中の値を呼び出すときにはvar <#variable name#>: <#type#> {の中の<#variable name#>の変数名を使う

試しに例文では整数同士の足し算をしてみる、前もって変数Aを宣言してComputed Variable Get Declarationの変数名はplus1としておこう

当然Computed Variable Get Declarationの型はInt(整数)」だ
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
var A = 1//これがComputed Variable Get Declarationのキモ

var plusOne:Int {
get {
<#statements#>
}
set {
<#variable name#> = newValue
}
}
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜



getの中には処理を書く、この時大事なのはfuncと違い、Computed Variable Get Declarationはすでに宣言した変数を使って計算式や処理を書くということだ、だから方程式を自分でつくるようなやり方がfuncだとすればComputed Variable Get Declarationは目の前にあるものを自分の手で並べていくようなものだと言える

処理はgetの{}内の<#statements#>の中に書く

今回は変数Aに1を加算するだけなので、A = A + 1と書く

で、大事なのはComputed Variable Get Declarationではgetの中の処理から結果を得るわけで、setでは前もって宣言した変数Aの中身を改めて確認しているということだ

つまりsetの中には処理は書くことはない


〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
var A = 1

var plusOne:Int {
get {
A = A + 1
return A//Aの値を返す
}
set {
A = newValue//これがComputed Variable Get Declarationのキモ
}
}
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜


でこのnewValueはなんなのか?というと、このComputed Variable Get Declarationを改めて使うときのキモになる部分だ

このvar plusOneはprint(plusOne)関数で2を返すわけだが、このComputed Variable Get Declarationでは面白いのはComputed Variable Get Declarationの中で使われた前もって宣言した変数を変更することで1つ変えるだけでそのまま計算式を流用できるということ


〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
var A = 1//これがComputed Variable Get Declarationのキモ

var plusOne:Int {
get {
A = A + 1
return A
}
set {
A = newValue
}
}

print(plusOne)

A = 5//Aを書き換える
print(plusOne)//6を返す(plusOne変数が6に変化)




A = 7 //Aを7に再代入
print(plusOne)//8を返す(plusOne変数が8に変化)
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜


これでなにができるかというと、同じ関数がコロコロ変化する時に、簡単に処理を書くことができる

つまりA = 〇〇さえ書き換えればplusOneはその時のタイミングで自動的に変化してくれるということだ


自動で値が変化してくれるというのがこのComputed Variable Get Declarationのすごいところだ



さらにこのComputed Variable Get Declarationはもともと変数であるため、そのまま処理文の中に書き込んだり、そのまま足したり引いたりできる、これは関数にはできないことだ


plusOneの場合で言えば極端な話新しく宣言した変数の宣言の中で、var AA = plusOne + 5というふうな雑な扱い(酷いww)をしても警告文なしで平気で動いてくれる


ある意味会社の会長がトイレ掃除もするみたいな感じだ、偉ぶらないのだ


funcなんて毎回毎回数値や文字列を欲しがるけど、Computed Variable Get Declarationは最初に与えられた値も、後から与えられた値も、大事に抱えて、命令によっては捨て去ることもできるのだ




まとめるとComputed Variable Get Declarationは、構成している変数を書き換えると同時に自動的に計算をしてくれて、呼び出すときはComputed Variable Get Declarationの変数名で呼び出せて、さらに関数funcと違い、元来変数なので計算式や処理文の中にもそのまま変数名で入れることができるという存在
関連記事
スポンサーサイト



コメント


管理者にだけ表示を許可する
 

 

トラックバック