初心者、基礎を積み上げる「タプル」
タプルとは何か?
!タプルとは複数個のデータを組みにしてまとめたもの。関連し合う複数個の値をまとめて扱いたいが、専用の構造体やクラスを定義するほどでもない状況で活躍。特に、関数やプロパティから複数個の値を返すときに重宝する。
構造体などとは異なりタプルにはメソッドやプロパティを付け加えることはできない。一時的に保存する用途に使用するべきで、複雑なデータ構造を作るべきではない。
後半の難しい話は置いておいてまず重要なのは関数やプロパティから複数個の値を返すときに重宝ということ。
使用例
//体力
let HP : (String, Int) = ("ヒットポイント", 100)
なお、型名は省略可能。
let hp = ("ヒットポイント", 100)
タプルは二つと限定されているわけではないので多くの要素を持たせることも可能。
!タプルを型とする変数にタプルを代入するには、互いの要素の個数と型が同じでなければならない。
let hp = ("ヒットポイント", 100) let attack : (String, Int,Int) = ("物理と魔法", 30, 70) var status : (String, Int, Int) = attack //代入できる status = hp //エラー hpは(String,Int)で型が異なる
!タプルの要素には「.0」のような記法でアクセスできる。
print("\(status.0)は\(status.1)と\(status.2)") //物理と魔法は30と70 status.1 = 100 //statusは変数(var)なので代入可能 print("\(status.1)と\(status.2)") //100と70