gpt4 book ai didi

swift - 构造函数调用的可选链接?

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

我想选择性地将一个 NSNumber? 转换为一个 Int?,但是 Int 的初始化方法只需要 init( NSNumber),所以我不能传递 NSNumber?

我有没有办法压缩这段代码,以便它使用可选链接之类的东西?

// number: NSNumber?
let integer = number == nil ? nil : Int(number!)

最佳答案

Int 构造函数不接受可选参数。您可以将构造“包装”到 map() 中:

let number : NSNumber? = ...
let n = number.map { Int($0) } // `n` is an `Int?`

但是在这里使用 NSNumberintegerValue 属性和可选链接会更容易:

let n = number?.integerValue // `n` is an `Int?`

或者只是

let n = number as? Int // `n` is an `Int?`

因为 Swift 在 NSNumberInt 之间自动“桥接”。

关于swift - 构造函数调用的可选链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30047600/

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