Optionalな値をまとめて剥ぎとりたり場合は、カンマでletをつづけてかけるらしい。
if let ... ,
let ... ,
let ... ,
let ... { ... }
else { ... }
ひとつでも nil があれば else を実行するらしい。
インデントがずれて微妙だとおもってたのだけど、ifの後のスペースを二つにすると、ちょっとだけ良い感じになることに気づいた。
if let ... ,
let ... ,
let ... ,
let ... { ... }
else { ... }
具体例もあげとこう。
func letletlet(x: Int?, y: Int?, z: Int?) -> Int? {
if let xx = x,
let yy = y,
let zz = z {
return xx + yy + zz
} else {
return nil
}
}
letletlet(1, 2, 3) // => 6
letletlet(1, nil, 2) // => nil
どっちにしろ、ifの中が微妙な気がするね。