代码之家  ›  专栏  ›  技术社区  ›  lf_araujo

从ArraySlice中解包字典

  •  0
  • lf_araujo  · 技术社区  · 6 年前

    我有一个 ArraySlice<Dictionary<String, String>> 里面只有一本字典。如下所示:

    [["high": "4", "investpercent": "6.0", "objective": "2.0", "savings": "2.0", "expenses": "1.0", "date": "2017-09-26", "low": "2"]]
    

    但是,我想用下标操作字典,这在ArraySlice中没有实现。在典型的切片中,根据SO中发现的问题,可以做如下操作:

    let dictionary = ["a": 1, "b": 2, "c": 3]
    
    var smallerDictionary: [String: Int] = [:]
    
    for (key, value) in dictionary.dropFirst() {
        smallerDictionary[key] = value
    }
    
    print(smallerDictionary) // ["a": 1, "c": 3]
    

    我试过但在ArraySlice不起作用。

    • 如何从ArraySlice中“解包”词典?
    1 回复  |  直到 6 年前
        1
  •  1
  •   vacawama    6 年前

    如果你的 ArraySlice 被称为 slice slice.first! slice[slice.startIndex] 要访问包含的词典:

    let slice: ArraySlice<[String:String]> = [["high": "4", "investpercent": "6.0", "objective": "2.0", "savings": "2.0", "expenses": "1.0", "date": "2017-09-26", "low": "2"]]
    
    var smallerDictionary: [String: String] = [:]
    
    for (key, value) in slice.first!.dropFirst() {
        smallerDictionary[key] = value
    }
    
    print(smallerDictionary)
    

    注: dropFirst() 无序 .

    阵列片 slice.count > 0 , !slice.isEmpty ,或正确展开 slice.first .