[英]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.