最後に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