繁体   English   中英

Swift 3:将字符串类型的字典转换为Int

[英]Swift 3 : Convert Dictionary of String type to Int

我有字典

var dict: [String: [String]] = ["key1": ["1", "111"], "key2": ["22", "222"]]

我如何使用地图功能将其转换为[String: [Int]]

["key1": [1, 111], "key2": [22, 222]]

不是通过使用for OR forEach循环

斯威夫特4

您可以将mapValues (在Swift 4中引入)与数组map ,如下所示

let newDict = dict.mapValues { value in 
    value.map { Int($0)!}
}

请注意,如果数组中的值不能转换为Int ,则程序将崩溃。

迅捷3

但是,在Swift 3中,没有mapValues 幸运的是,有了这个扩展(源: https : //stackoverflow.com/a/24219069 ):

extension Dictionary {
    init(_ pairs: [Element]) {
        self.init()
        for (k, v) in pairs {
            self[k] = v
        }
    }
}

你可以写

let newDict = Dictionary(dict.map { (key, value) in 
    (key, value.map{Int($0)!}) 
})

这也将达到预期的结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM