我在对对象数组进行排序时遇到一些问题:
class Genome {
var id: Float?
var won: Float?
var lost: Float?
var drew: Float?
var fitness: Int = Int.random(in: 0...100)
init(id: Float, won: Float, lost: Float, drew: Float) {
self.id = id
self.won = won
self.lost = won
self.drew = drew
}
}
这是对象。 我有一个包含 50 个"基因组"对象的数组,我需要使用它的适应度属性对其进行排序。
我已经试过了:
genomes.sorted({ $0.fitness > $1.fitness })
但它没有用。 我该怎么做?
sorted
有一个返回值。您必须声明一个新变量,并且按顺序排列<
let sortedGenomes = genomes.sorted{ $0.fitness < $1.fitness }
要就地对genomes
进行排序,请使用sort
genomes.sort{ $0.fitness < $1.fitness }
旁注:不要将使用非可选值初始化的属性声明为可选属性。
Swift3 & Swift 4 & Swift 5
这将按升序对对象数组进行排序。
let sortedGenomes = genomes.sorted(by: { $0.fitness < $1.fitness })