[Swift]タプルの使い方まとめ
Swift初心者向けにタプルの使い方をまとめます。
Swiftのタプルとは?
Swiftのタプルは複数の値を一つにまとめることができます。
一つの変数に複数の値を入れたり、関数で複数の値を返したりすることができます。
配列とタプルの違い
「一つの変数に複数の値を入れたり」という言葉を聞くと、配列と何が違うの?と感じますよね。
配列とタプルは非常に似ています。しかし、似ているとは言っても違う点もあるので、列挙すると
- 異なった型を組み合わせることができる(配列でもAny型を使えばできますが)
- 要素の追加・削除ができない(要素の変更はできる)
こんな感じでしょうか。
タプルを使ってみる
それではさっそくタプルを使ってみます。
配列では[]を使いましたが、タプルでは()を使用します。
let man = ("Mike", 20)
上記例では、manという定数の中にマイク(名前)、20(年齢)をイメージしています。
先述したように違う型(String型、Int型)でも記述することができます。
タプルの値にインデックスでアクセスする
タプルはインデックスが割り当てられるのでインデックスを使って値にアクセスすることもできます。
let tuple = (1,2,3,4) tuple.0 => 1
配列の場合はtuple[0]でアクセスしますが、タプルの場合だと記述が異なりますので注意しましょう。
タプルの値にラベルでアクセスする
インデックス以外にもラベルを付けることでアクセスすることもできます。
先ほどmanという定数の中にマイク(名前)、20(年齢)をイメージしたタプルを記述しました。
let man = ("Mike", 20)
これにラベルを付けて直感的に分かりやすくしましょう。
let man = (name:"Mike", age:20)
このコードでそれぞれ名前、年齢にアクセスしたい場合は以下のようになります。
let man = (name:"Mike", age:20) man.name => "Mike" man.age => 20
ラベル付きタプルに値を代入する
上記の例ではタプルにすでにMike、20という値を設定しました。
今度はとりあえずタプルを宣言して、その中にあとで値を代入してみます
var man = (name:String, age:Int) man.name = "Bob" man.age = 25
(name: String)のようにラベルの後ろに代入予定の型を入力します。
そして、.ラベル名(man.name)を指定して代入をします。