😳
[Swift] Tupleは要素ごとに初期化できる
とてもギョッとしたのですが、SwiftのTupleは要素ごとに初期化できるようです。
let tuple: (Int, String, Bool)
tuple.0 = 42
print(tuple) // ここではまだエラー
print(tuple.0) // これはエラーにならない
if Bool.random() {
tuple.1 = "Hello"
} else {
tuple.1 = "Goodbye"
}
tuple.2 = true
print(tuple) // ここでは動く
動作的にはこう書いたのと変わらないようです。
let tuple.0: Int
let tuple.1: String
let tuple.2: Bool
1つの定数ではしばしば使っていましたが、Tupleでも同じことができるとは思いませんでした。
let x: Int
if Bool.random() {
x = 42
} else {
x = 46
}
イマイチ用途は浮かばないですが、覚えておくとギョッとせずに済みそうです。
Discussion