Why do I need to unwrap the variable unwrapped in the final return statement? Isn't guard supposed to handle this?
func test() -> String {
let fmt = NSNumberFormatter()
let myValue:Double? = 9.50
guard let unwrapped = myValue else {
return ""
}
return fmt.stringFromNumber(unwrapped)
}
error: value of optional type 'String?' not unwrapped; did you mean to use '!' or '?'? return fmt.stringFromNumber(unwrapped)
It's not the variable
unwrapped. It'sstringFromNumber: it returns an optional string. But your function returns a string, hence you must unwrap:There's a difference between these 2: