【问题标题】:Cannot convert value of type [(key:string,value:int)] to specified type Dictionary<String,Int>无法将 [(key:string,value:int)] 类型的值转换为指定类型 Dictionary<String,Int>
【发布时间】:2017-06-29 06:38:36
【问题描述】:

我有以下函数可以返回已排序的字典,但出现此错误:

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
}

有人知道我为什么会收到这个错误吗?

【问题讨论】:

    标签: swift dictionary


    【解决方案1】:

    这是 Swift 类型错误

    结果的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   
    }
    

    根据您的要求,您可以更改您的实施。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • @user2924482 您可以对字典进行排序,但结果将始终是键/值对(元组)数组
      猜你喜欢
      • 2017-03-17
      • 2021-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-09
      • 2018-10-01
      相关资源
      最近更新 更多