在Swift 2.0中排序$ 0和$ 1意味着什么

时间:2016-03-21 14:30:16

标签: arrays swift sorting quicksort

很多人在排序时会使用$0$1。它对我不起作用。这是一些人使用的代码。

images.sort({ $0.fileID > $1.fileID })

images是数组,我假设.fileID是该对象中的一个字段。我想对名为oneCells的{​​{1}}结构数组进行排序。

spend

我想按日期对数组进行排序。我该怎么做?

3 个答案:

答案 0 :(得分:1)

它的速记参数名称

  

Swift自动为内联提供速记参数名称   闭包,可用于引用闭包的值   名称为$ 0,$ 1,$ 2等的参数

答案 1 :(得分:1)

这些是传递给闭包的值的占位符。它们按位置标记而不是命名。 $0是闭包的第一个参数,$1是第二个,$2是第三个,依此类推。在这种情况下,sort有两个参数。 $0spend数组的当前元素,$1是下一个数组。你可以这样打电话给sort

let sorted = spend.sort{$0.date.timeIntervalSince1970 > $1.date.timeIntervalSince1970}

答案 2 :(得分:0)

希望这会对你有所帮助:

struct oneCell{
  var date = NSDate()
  var money = Int()
}

var Spend = [oneCell]()
Spend.sort({ $0.date.compare($1.date) == NSComparisonResult.OrderedAscending })