无法将类型[(key:string,value:int)]的值转换为指定类型Dictionary <string,int>

时间:2017-02-10 19:41:21

标签: swift dictionary

我有以下函数返回排序字典,但我收到此错误:

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
}

有谁知道我为什么会收到此错误?

2 个答案:

答案 0 :(得分:2)

是Swift Type Error

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)

您无法对字典进行排序。字典没有订单,因此它们不能有排序的订单。