gpt4 book ai didi

swift - 从假定为 Int 或 Double 的任何对象转换为 double

转载 作者:搜寻专家 更新时间:2023-11-01 06:12:39 25 4
gpt4 key购买 nike

我的字典 [String: Any] 中有对象,它可以是 Int 或 Double。在我的模型中,我有一个 Double 变量,我需要执行一个转换。现在我正在做以下事情:

if let price = dict["price"] as? Double { self.price = price }
if let price = dict["price"] as? Int { self.price = Double(price) }

有什么方法可以更快更干净地编写我的代码?

最佳答案

你可以使用 case let 来明确只有一件事被转换:

switch dict["price"] {
case let price as Double: { self.price = price }
case let price as Int: { self.price = Double(price) }
default: break
}

虽然代码稍长,但重复性较低,因为dict["price"]只用了一次。

如果您确定 "price" 键将在那里,并且它将是一个数字,您可以使用此代码:

self.price = (dict["price"] as! NSNumber).doubleValue

尽管更短,但第二种方法需要程序员更多的确定性才能不被破坏。如果出现任何问题,第一个代码将保留 price 未设置,而第二个代码将崩溃。

关于swift - 从假定为 Int 或 Double 的任何对象转换为 double,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51920756/

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