我有一个Swift对象列表,我想按多个条件排序。列表中的对象是DateRange
类型:
class DateRange {
var from: NSDate?
var to: NSDate?
}
该列表包含许多对象,其中一些
from
或to
字段为空。我希望按以下方式对此列表进行排序:
- 首先是所有具有日期的对象
- 然后是具有至少一个日期(
from
或to
)的对象 - 最后是没有任何日期的对象
nil
,则将其设置为非常低的日期):date_ranges.sort { |a, b|
[fix_nil(a.from), fix_nil(a.to)] <=> [fix_nil(b.from), fix_nil(b.to)]
}.reverse
def fix_nil(val)
val.nil? ? Date.new(0) : val
end
怎样用Swift实现最佳方式?提前感谢。
DateRange
实例都是(nil, nil)
,那么这将返回true。 - Nate Cooklhs
,所以这将返回true。 - Nate CooksortBy
函数,它可以很好地处理不可变数据。 - Mattes Dev