最後にSwiftのコードを書いてから数年が経過したが、その間にSwiftUIの登場や、Windowsへの対応など、色々とアップデートがかかっていたようで、ここに来て再びSwiftでのアプリ開発への興味が再燃した。

今回からしばらく、自分の復習もかねてSwiftの基本について記事にまとめていいこうと思う。

まずはタプルの使い方について詳しくまとめてみた。

タプルとは

タプルは一つの変数に複数の値を入れることができるもので、代表的な使用例としては関数の戻り値として複数の値を返すケースなどが挙げられる。

タプルの使い方

タプルは以下のように定数や変数として宣言する。

let product = ("Swift", 2020)
var kingaku = (1000, 100)

型推論により、与えられた値のデータ型に合わせて変数(定数)は作られるが、値の再代入時にデータ型が変わってしまうとエラーとなる。

// エラーになる
kingaku = (1000, "100")

なお、任意の位置に対する値の代入は以下のとおり0から始まるインデックス番号を使う。

kingaku.0 = 500
kingaku.1 = 100

print(kingaku)
// (500, 100)

このインデックス番号について配列と大きく違う点がある。
この番号をfor文で利用することができないのだ。
以下のコードを実行するとエラーが発生する。

// タプルだとエラー発生
for i in kingaku {
    print(i)
}

// 配列ならOK
var kingaku2 = [500, 100]
for i in kingaku2 {
    print(i)
}

また、タプルの値にはラベル名をつけることもでき、こうすることでコードの保守性を高めることができる。

let kingaku = (price: 1000, tax: 100)
print(kingaku.price)
print(kingaku.tax)

ワイルドカード

別の変数でタプルの値を受け取る時に、一部の不要なデータを除いて受け取りたい場合がある。

このような時はワイルドカード(アンダースコア)を使うことで、必要な値のみを取り出すことができる。

let data = (1000, 100)
let (price, _) = data

print(price)
//1000