【问题标题】:What is the correct Array Sort syntax?什么是正确的数组排序语法?
【发布时间】:2021-04-29 20:11:27
【问题描述】:

目标:对每个 struct.state 字段的结构数组进行排序。

当前场景:数据未按州按字母顺序排序。

代码如下:

struct RevisedNigeriaDataListElement: Identifiable, Equatable {
    let id: UUID
    let state: String
    let cases, active, recovered, deaths: String
}

typealias RevisedNigeriaDataList = [RevisedNigeriaDataListElement]



  func processData(origData: NigeriaDataList) {
        var data: RevisedNigeriaDataList = []

        for item in origData {
            let element = RevisedNigeriaDataListElement(
                id: UUID(),
                state: item.state,
                cases: item.cases.str,
                active: item.active.str,
                recovered: item.recovered.str,
                deaths: item.deaths.str
            )

            data.append(element)
        }
    
        revisedData = data.sorted(by: { $0.state: String, $1.state: String in
            $0 < $1
        })
    }

我的问题:是“data.sorted”。

数据结构的每个成员都是一个字符串。
什么是正确的语法?

【问题讨论】:

标签: swift sorting


【解决方案1】:

$0$1Shorthand Argument Names。正确的语法是这样的:

data.sorted(by: { $0.state < $1.state })

或者,您可以放弃速记参数并自己定义它们:

data.sorted(by: { firstElement, secondElement in
    firstElement.state < secondElement.state
})

注意不要输入: String。您正在RevisedNigeriaDataList 的数组上调用sorted 方法,因此类型是推断出来的。

【讨论】:

    最近更新 更多