gpt4 book ai didi

sorting - 在 Swift 3 的 .sorted 期间为 Nil 元素

转载 作者:行者123 更新时间:2023-12-04 20:06:39 26 4
gpt4 key购买 nike

所以我的问题是我想对 chatList 从最大到较小的 TimeStamp 进行排序。这很好用,问题是当 lastMessage 为 nil 时。

当为nil时,我想把chatList的那个元素设置到第一个位置,继续排序。

反正有没有告诉sort把第一个索引的那个元素放到第一个位置,然后继续排序。如果不是,那么你们建议我做什么?

var sortedChatList: < Array AbstractChat>{

get{
return (chatList?.sorted(by:{
//here goes the timestamp comparison

if (($0.lastMessage != nil) && ($1.lastMessage != nil)) {
return Double($0.lastMessage!.timeStamp)! > Double($1.lastMessage!.timeStamp)!
}
else{
return true
}
}))!
}
}

最佳答案

您可以使用 nil-coalescing 运算符将 nil 默认为遥远的 future 。

下面说明了这个想法:

import Foundation

let foo: [Date?] = [Date(), nil, Date(timeIntervalSinceNow: 100)]

let bar = foo.sorted(by: {
($0 ?? Date.distantFuture) > ($1 ?? Date.distantFuture)
})

bar.forEach({
print("\($0)")
})

关于sorting - 在 Swift 3 的 .sorted 期间为 Nil 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41771519/

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