为什么我需要在最终的return语句中解包变量func test() -> String {
let fmt = NSNumberFormatter()
let myValue:Double? = 9.50
guard let unwrapped = myValue else {
return ""
}
return fmt.stringFromNumber(unwrapped)
}
? Isn的守卫应该处理这件事吗?
if let theTextField = self.view.viewWithTag(yourTagId) as? UITextField {
print(theTextField.text)
}
错误:可选类型的值'字符串?'没有打开;你的意思是 使用'!'或者'?'? return fmt.stringFromNumber(unwrapped)
答案 0 :(得分:8)
这不是变量unwrapped
。它是stringFromNumber
:它返回一个可选字符串。但是你的函数返回一个字符串,因此你必须解包:
return fmt.stringFromNumber(unwrapped)!
这两者之间存在差异:
return fmt.stringFromNumber(unwrapped!)
return fmt.stringFromNumber(unwrapped)!