初心者、基礎を積み上げる「キーワード付きタプル代入」
!キーワードのついたタプルは同じキーワードのついたタプルか、キーワードのないタプルとの間でしか代入できない。
let attack = ("物理と魔法", 30, 70) let attack1 = (name:"攻撃力",p: 50, m:60) var a1:(String,Int,Int) = attack var a2:(name:String, p:Int, m:Int) = attack var a3:(name:String, a:Int, b:Int) = attack a1 = attack1 a2 = attack1 a3 = attack1 //エラー
!さらにキーワード付きタプルは便利なことに、要素の順序が違っていても同じキーワード同士で代入できる。
(switch文で使用した場合キーワードは無視される。)
!また型(String,Int,Intなど)と要素数が同じであればキーワードが違うタプルは互いにキャスト*1ができる。
a3 = attack1 as (String, Int, Int) //継承関係のあるクラスや構造体に対して利用するのが主な使い方
ここまでのまとめ3つ
- キーワードのついたタプルは同じキーワードのついたタプルか、キーワードのないタプルとの間でしか代入できない
- 要素の順序が違っていても同じキーワード同士で代入できる
- 型(String,Int,Intなど)と要素数が同じであればキーワードが違うタプルは互いにキャスト*2ができる。
参考サイト:型キャスト | Swift言語を学ぶ
参考書籍: