我有以下函数返回排序字典,但我收到此错误:
Cannot convert value of type [(key:string,value:int)] to specified type Dictionary<String,Int>
这是我的代码:
func generatDictionaryFromString(str:String) -> Dictionary<String,Int>{
var charDict = Dictionary<String,Int>()
/* doing something here
*/
return charDict.sorted(by:<) // <-- line with the error
}
有谁知道我为什么会收到此错误?
答案 0 :(得分:2)
Swift类型的结果是[(key:String,value:Int)],函数返回类型是Dictionary,因此报告错误
所以,它由
解决选项:1)更改函数的返回类型
func generatDictionaryFromString(str:String) -> [(key: String, value: Int)]{
let charDict = Dictionary<String,Int>()
/* doing something here
*/
return charDict.sorted(by:<)
}
选项:2)更改返回值。
func generatDictionaryFromString(str:String) -> (key: String, value: Int)? {
let charDict = Dictionary<String,Int>()
/* doing something here
*/
return charDict.sorted(by:<).first
}
根据您的要求,您可以更改您的实施。
答案 1 :(得分:0)
您无法对字典进行排序。字典没有订单,因此它们不能有排序的订单。