OK
// Playground - noun: a place where people can play
if true {
var a1:String? = nil
a1 = "sss"
if let a2 = a1 {
println("xxx")
}
else{
println("yyy")
}
var b:String = a1!
}
NG
// Playground - noun: a place where people can play
if true {
var a1:String? = nil
// a1 = "sss" // !!!
if let a2 = a1 { // (!) Playground execution aborted: Execution was interrupted, reason: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0).
println("xxx")
}
else{
println("yyy")
}
var b:String = a1!
}
OK
// Playground - noun: a place where people can play
if true {
var a1:String? = nil
// a1 = "sss" // !!!
if let a2 = a1 {
println("xxx")
}
else{
println("yyy")
}
// var b:String = a1! // !!!
}
なぜなのか