[英]Swift Dictionary sorted keys extension
我正在使用Dictionary的键作为tableview
的datasource
。 字典的类型为[String: [Question]]
。
问题是从Dictionary.keys
返回的数组不是经过排序的数组,但是我希望对其进行排序。 创建一个用于对键数组进行排序的函数可能是一个解决方案,但是这对我来说还不够好,因为每次访问键时都必须调用该函数。
我的想法是,对Dictionary进行扩展,像这样,
extension Dictionary where Key: StringLiteralConvertible {
var sortedKeys: [String] {
get {
return keys.sort{ $0.0 > $1.0 }
}
}
}
但是它告诉我“类型是表达式在没有更多上下文的情况下是模棱两可的”。 谁能告诉我这是否可能?
extension Dictionary where Key: Comparable {
var sortedKeys: [Key] {
get {
return keys.sort{ $0 > $1 }
}
}
}
要使用>
, Key
必须是可Comparable
。 (此顺序是您想要的?您将<
用作升序。)
此扩展适用于Key
不能为String
Dictionary
。
在keys.sort
, $0
和$1
属于Key
类型,而不是(Key, Value)
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.