gpt4 book ai didi

ios - 为什么 guard 不创建未包装的 var?

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:00:59 26 4
gpt4 key购买 nike

为什么我需要在最后的 return 语句中解包变量 unwrapped?守卫不应该处理这个吗?

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)

最佳答案

这不是变量unwrapped。它是 stringFromNumber:它返回一个可选的字符串。但是你的函数返回一个字符串,因此你必须解包:

return fmt.stringFromNumber(unwrapped)!

这两者之间有区别:

return fmt.stringFromNumber(unwrapped!)
return fmt.stringFromNumber(unwrapped)!

关于ios - 为什么 guard 不创建未包装的 var?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33967795/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com