今まで.Some(hoge)って意識してなかったけどオプショナルのオプショナルのオプショナルにnil代入するのってどれが正解なんだろ

var a:Int???
var b:Int???
var c:Int???

a = nil // nil
b = .Some(nil) // Optional(nil)
c = .Some(.Some(nil)) // Optional(Optional(nil))

if let x = a { print (x) }
if let y = b { print(y) } // nil
if let z = c { print(z) } // Optional(nil)

bはないだろうけど、cの書き方が正解なんかな。気持ち的にはaだけど
でも下の2つは結果が同じなんだよな

a = 10
if let x = a { print(x) } // Optional(Optional(10))

c = .Some(.Some(10))
if let z = c { print(z) } // Optional(Optional(10))

頭こんがらがってきた
オプショナルの連鎖はほとんど使わないけど、配列が要素になってる配列から、a.last.last.last なんて取り出しかたする時に出てきそうだ