今回はタプルについて説明していきます。あまり聞き馴染みがないかもしれませんが、知っておくとちょっとだけ便利なので、最後まで読んでいってください。
タプルとは?
タプルとは、複数個のデータを順序付してひと組にまとめたものです。関連する複数の値を一まとまりにして扱いたい場合、それに合わせてクラスや構造体を作って操作することが多いと思いますが、それらを作るほどでもない時に登場するのが、このタプルです。
クラスや構造体とは異なり、タプルにはメソッドやプロパティを持たせることはできません。さらに値の追加、削除、比較処理、繰り返し処理などもありません。それくらいシンプルなものなので、一時的に値を保持したり、クラス間、メソッド間でのアタイの受け渡しなどで使用されることが多いです。
タプルの宣言
タプルは以下のように定義します。
let tuple = ("value1", "value2")
もちろん文字列だけでなく、IntやDoubleを値に持たせることもできます。
型推論されるため上記のような書き方でも問題ないのですが、明示的に方宣言をする場合は以下のようになります。
let tuple: (String, String) = ("value1", "value2")
もちろんタプルは2つ以上の値を持つことができます。
let tuple = ("value1", "value2", 10)
値へのアクセス
タプルの持つ値にアクセスする方法は、以下のようにインデックスの番号を指定します。
let tuple = ("value1", "value2", 10)
print(tuple.0) //value1
print(tuple.1) //value2
print(\(tuple.2)) //10
代入と値の更新
型が同じタプル同士であれば代入が可能です。
let tuple = ("value1", "value2", 10)
let tuple2: (String, String, Int) = tuple
さらに、各要素を別々の変数や定数に代入することもできます。
let tuple = ("value1", "value2", 10)
let (strValue1, strValue2, intValue) = tuple
print(strValue1) // value1
print(strValue2) // value2
print(\(intValue)) // 10
また、各値を別々に更新する必要があれば、以下のように行います。(もちろんタプルはvarで宣言しておいてください。)
var tuple = ("value1", "value2", 10)
tuple.0 = "value3"
tuple.1 = "value4"
tuple.2 = 100
コメント