Caution
お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。
タプル / 名前付きタプル
タプルは複数の値を一つにまとめて扱うための型で、関数から複数の値を返したいときなどに便利です。
構文
// タプルの作成 let タプル = (値1, 値2, 値3) // 名前付きタプル let タプル = (名前1: 値1, 名前2: 値2) // 分解(タプルの各要素を別々の変数に代入) let (変数1, 変数2) = タプル // インデックスでアクセス タプル.0 タプル.1
構文一覧
| 構文 | 概要 |
|---|---|
| (値1, 値2) | 基本的なタプルを作成します。インデックス(.0, .1)でアクセスします。 |
| (名前: 値, ...) | 名前付きタプルを作成します。名前でアクセスできます。 |
| let (a, b) = タプル | タプルを分解して各要素を変数に代入します。 |
| let (a, _) = タプル | 『_』を使うと不要な要素を無視できます。 |
サンプルコード
// 基本的なタプル
let point = (10, 20)
print("x: \(point.0), y: \(point.1)")
// 名前付きタプル
let person = (name: "花子", age: 25, city: "東京")
print("\(person.name)(\(person.age)歳)は\(person.city)在住です")
// タプルを返す関数(複数の戻り値)
func minMax(array: [Int]) -> (min: Int, max: Int) {
return (array.min()!, array.max()!)
}
let result = minMax(array: [3, 1, 7, 2, 9])
print("最小: \(result.min), 最大: \(result.max)")
// 分解して受け取る
let (minVal, maxVal) = minMax(array: [5, 2, 8])
print("最小: \(minVal), 最大: \(maxVal)")
// 不要な要素を _ で無視する
let (_, max) = minMax(array: [4, 6, 1])
print("最大値のみ: \(max)")
概要
タプルは軽量なデータのグループ化に適しています。関数から複数の値を返す場合や、一時的なデータの組み合わせを表す場合によく使われます。名前付きタプルを使うと各要素の意味が明確になり、可読性が向上します。
タプルはあくまで一時的なデータの組み合わせに向いています。複雑なデータ構造を扱う場合や、同じ構造を繰り返し使う場合は、構造体(struct)やクラスを使うことを検討してください。
タプルは複数の戻り値としても活用できます。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。