Contents

スウィフト – タプル
Tuple(タプル)とは
型の異なる複数の値をひとまとめにできる
Swift 4 では、単一の複合値で複数の値をグループ化するために使用されるタプルタイプも導入されています。
タプルの値は違う型でもかまいませんし、同じ型である必要もありません。
// 値のみ (val1, val2, ...) // 値に名前をつけられる (name1: val1, name2: val2, ...)
Tupleをつかう
値のみを宣言する場合
- 0からの連番で参照する
値のみのTuple
var tpl = ("猫", 35, true)
println(tpl) // -> (猫, 35, true)
println(tpl.0) // -> 猫
println(tpl.1) // -> 35
println(tpl.2) // -> true
println(tpl.3) // Error
tpl.1 = 20
println(tpl.1) // -> 35
値に名前をつけて宣言する場合
- つけた名前で参照できる
- 連番でも参照できる
値に名前をつけたTuple
var tpl = (name: "猫", count: 10, flag: true)
println(tpl.name) // -> 猫
println(tpl.count) // -> 10
println(tpl.flag) // -> true
println(tpl.0) // -> 猫
println(tpl.1) // -> 10
println(tpl.2) // -> true
Tupleに変数名をつけない
- まとめて変数宣言っぽいことができる
Tupleに変数名をつけない
var (name, count, flag) = ("猫", 10, true)
println(name) // -> 猫
println(count) // -> 10
println(flag) // -> true
TAupleから指定した値だけを取り出す
- 取得しない位置に_(アンダースコア)を入れることで実現できる。
Tupleから指定した値のみ取り出す場合
var (name, _, flag) = ("猫", 10, true)
println(name) // -> Qiita
println(_) // Error
println(flag) // -> true
Tupleで値を入れ替える
- tmpのような変数を用意する必要がない
Tupleで値を入れ替える
var n1 = 1
var n2 = 2
(n1, n2) = (n2, n1)
println(n1) // -> 2
println(n2) // -> 1
ネストしたTuple
- 右辺と左辺のネスト構造が同じなら代入される
ネストしたTuple
var nest = (10, 20, (30, 40))
var (n1, n2, n3, n4) = nest // Error
var (n1, n2, (n3, n4)) = nest // 代入される