オペレータが暗黙的にアンラップされたオプションを返す理由はありません。しかし、暗黙的にラップされていない任意のデフォルト値をオプションの(ラップされた)ラップにラップする点は何ですか?私はちょうど非オプションの結果を期待するだろう。私は何とかここで間違っていると思いますか?なぜnil合体演算子は、暗黙的にラップされていないデフォルト値をラップしますか?
var defaultValue: Int! = 0
var optional: Int?
let result = optional ?? defaultValue
print(defaultValue.dynamicType) // ImplicitlyUnwrappedOptional<Int>
print(result.dynamicType) // Optional<Int>
ここで興味深い点は、IUOが暗黙的にアンラップされない状況があることです。パターンマッチングは別の例です。 –