gpt4 book ai didi

arrays - 如何展平自定义对象 [[CustomModel?]] 的数组?

转载 作者:行者123 更新时间:2023-12-05 01:11:42 24 4
gpt4 key购买 nike

我只有 Swift 的基础知识。我想将 var dataSource:[[CustomModel?]]? 更改为 [CustomModel]

我尝试了以下方法

  1. 让 flat = dataSource.reduce([],+)
  2. let flat = dataSource.flatMap { $0 }
  3. let flat = dataSource.compactMap{ $0 }
  4. 让 flat = dataSource.Array(dataSource.joined())

我遇到了错误

无法将类型“[FlattenSequence<[[CustomModel?]]>.Element]”(又名“Array >”)的值转换为预期的参数类型“[CustomModel]”

最佳答案

您需要先使用 flatMap{} 扁平化嵌套数组,然后使用 compactMap{} 获取非可选值。假设输入数组是 [[Int?]]

let value:[Int] = dataSource.flatMap{$0}.compactMap{ $0 } //Correct

另一个选项会报错-

let value:[Int] = dataSource.flatMap{ $0 } ?? [] //Error

//正确 enter image description here

//错误 enter image description here

关于arrays - 如何展平自定义对象 [[CustomModel?]] 的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62793985/

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