gpt4 book ai didi

swift - 通过应用过滤器去除 nils 后,将类型更改为非 optional

转载 作者:行者123 更新时间:2023-12-03 09:16:38 25 4
gpt4 key购买 nike

let elements: [(Int?, Int?)] = [(1, 2), (2, 1), (3, nil), (nil, 3), (5, 6), (6, 5)]
let result = elements.filter { $0.0 != nil } as! [(Int, Int?)]
有没有更干净的方法来获得部分非 optional 类型?没有强制展开...
当我们过滤掉 nils 时,编译器应该很明显我们会得到一些非 optional 东西。就像我们应用 compactMap 的情况一样。

最佳答案

这是一种无需强制展开的方法,它仍然大部分可读:

let result = elements.compactMap { $0 as? (Int, Int?) }
打印出来 result表明它有效:
[(1, Optional(2)), (2, Optional(1)), (3, nil), (5, Optional(6)), (6, Optional(5))]

关于swift - 通过应用过滤器去除 nils 后,将类型更改为非 optional ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63735840/

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