Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 正确的数组排序语法是什么?_Swift_Sorting - Fatal编程技术网

Swift 正确的数组排序语法是什么?

Swift 正确的数组排序语法是什么?,swift,sorting,Swift,Sorting,目标:对每个struct.state字段的结构数组进行排序。 当前场景:数据不是按照每个州的字母顺序排序的 代码如下: struct RevisedNigeriaDataListElement: Identifiable, Equatable { let id: UUID let state: String let cases, active, recovered, deaths: String } typealias RevisedNigeriaDataList

目标:对每个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
        })
    }
struct RevisedNigeriaDataListElement:可识别、可平衡{
let id:UUID
让状态:字符串
let病例,活动,恢复,死亡:字符串
}
typealias ReviedNigeriaDataList=[ReviedNigeriaDataListElement]
func processData(原始数据:尼日利亚数据列表){
var数据:RevisedNigeriaDataList=[]
用于原始数据中的项目{
let element=RevisedNigeriaDataListElement(
id:UUID(),
状态:item.state,
案例:item.cases.str,
活动:item.active.str,
已恢复:item.recovered.str,
死亡:item.death.str
)
data.append(元素)
}
ReviedData=data.sorted(按:{$0.state:String,$1.state:String排序)
$0 < $1
})
}
我的问题:是“data.sorted”

数据结构的每个成员都是一个字符串

正确的语法是什么?
$0
$1
是。正确的语法如下:

data.sorted(by: { $0.state < $1.state })
data.sorted(按:{$0.state<$1.state})
或者,您可以放弃速记参数,自己定义它们:

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

请注意,您没有放置
:String
。您正在对
ReviedNigeriaDataList
数组调用
sorted
方法,因此可以推断类型。

您可能有兴趣使用键路径对集合进行排序。查看此帖子