読者です 読者をやめる 読者になる 読者になる

"まだ"の力 [基礎辞書]

学んだことを書いていきます。質問やエラーなどございましたらお気軽にコメントお願いします。

初心者、基礎を積み上げる「キーワード付きタプル代入」

タプル

!キーワードのついたタプルは同じキーワードのついたタプルか、キーワードのないタプルとの間でしか代入できない。

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つ

  1. キーワードのついたタプルは同じキーワードのついたタプルか、キーワードのないタプルとの間でしか代入できない
  2. 要素の順序が違っていても同じキーワード同士で代入できる
  3. 型(String,Int,Intなど)と要素数が同じであればキーワードが違うタプルは互いにキャスト*2ができる。


参考サイト:型キャスト | Swift言語を学ぶ

参考書籍:


*1:キャスト・・・異なる型間での変換 「式 as 型」のようにして記述する

*2:キャスト・・・異なる型間での変換 「式 as 型」のようにして記述する