为什么需要在最终的return语句中解包变量unwrapped
?警卫不应该处理这个吗?
func test() -> String {
let fmt = NSNumberFormatter()
let myValue:Double? = 9.50
guard let unwrapped = myValue else {
return ""
}
return fmt.stringFromNumber(unwrapped)
}
错误:可选类型“字符串”的值?没有包装;你是说要
用 '!'要么 '?'?
返回fmt.stringFromNumber(展开)
最佳答案
不是变量unwrapped
。它是stringFromNumber
:它返回一个可选字符串。但是您的函数返回一个字符串,因此您必须解开包装:
return fmt.stringFromNumber(unwrapped)!
这些2之间有区别:
return fmt.stringFromNumber(unwrapped!)
return fmt.stringFromNumber(unwrapped)!
关于ios - 为什么不保护创建未包装的var?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33967795/