在 swift 3 中对一组元组进行排序

Adi*_*ari 3 arrays sorting tuples swift swift3

嗨,我有以下内容

class MyClass {
  var myString: String?
}

var myClassList = [String: MyClass]()
Run Code Online (Sandbox Code Playgroud)

我想通过 Swift 3 中的 myString 变量按字母顺序对这个数组进行排序吗?

apo*_*pse 5

如上所述,您有一个字典,而不是元组。但是,字典确实有一种sorted(by:)方法可用于对键/值对元组数组进行排序。下面是一个例子:

var m: [String: Int] = ["a": 1]
let n = m.sorted(by: { (first: (key: String, value: Int), second: (key: String, value: Int)) -> Bool in
  return first.value > second.value
})
Run Code Online (Sandbox Code Playgroud)

这被扩展以显示闭包的完整签名,但很容易被简写为:

let n = m.sorted(by: {
  return $0.value > $1.value
})
Run Code Online (Sandbox Code Playgroud)

此外,您还可以对 Dictionaries 执行其他枚举

m.forEach { (element: (key: String, value: Int)) in
  print($0.value)
}
Run Code Online (Sandbox Code Playgroud)

所有这一切都归功于 Swift 中的 Collection 和序列协议层次结构,它们是一些非常好的抽象。