【问题标题】:Swift - How to sort and array by optional propertySwift - 如何按可选属性排序和排列
【发布时间】:2020-12-07 01:08:34
【问题描述】:

假设我有一个具有此属性的 Cat 类:

var order: Int?

我有一个需要按此属性排序的这些类的数组:

let sortedCats = cats.sorted(by: { $0.order > $1.order })

我收到此错误:

"Binary operator '>' cannot be applied to two 'Int?' operands"

这样做的正确方法是什么?

【问题讨论】:

  • 这取决于你想如何对待无序的猫(那些无序的猫)。无序的猫应该比任何有序的猫更小还是更大?

标签: arrays swift sorting


【解决方案1】:

使用.min 的默认值,这是您可以在Int 上拥有的最小数字

let sortedCats = cats.sorted(by: { $0.order ?? .min > $1.order ?? .min })

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-19
    • 1970-01-01
    • 1970-01-01
    • 2014-04-18
    相关资源
    最近更新 更多