【问题标题】:Keeping an index with flatMap in Swift在 Swift 中使用 flatMap 保持索引
【发布时间】:2017-10-10 03:18:05
【问题描述】:

这是对这个问题的跟进:

flatMap and `Ambiguous reference to member` error

我正在使用以下代码将Records 数组转换为Persons 数组:

let records = // load file from bundle
let persons = records.flatMap(Person.init)

由于这种转换对于大文件可能需要一些时间,我想监控一个索引以输入进度指示器。

这个flatMap 结构可以实现吗?我想到的一种可能性是在 init 函数中发送通知,但我认为也可以从 flatMap 中计算记录?

【问题讨论】:

    标签: swift3 flatmap


    【解决方案1】:

    是的!使用enumerated()

    let records = // load file from bundle
    let persons = records.enumerated().flatMap { index, record in
        print(index)
        return Person(record)
    }
    

    【讨论】:

    • 太棒了,多么简单和优雅!
    • 欢迎来到斯威夫特! :p
    • 太棒了。谢谢你,@Alexander!
    猜你喜欢
    • 2021-04-29
    • 1970-01-01
    • 1970-01-01
    • 2019-06-14
    • 2015-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多