【发布时间】:2017-04-28 15:39:27
【问题描述】:
假设我有一组可以识别的对象,我想从中创建字典。我可以像这样轻松地从数组中获取元组:
let tuples = myArray.map { return ($0.id, $0) }
但是我看不到字典的初始化器来获取元组数组。我错过了什么吗?我是否为此功能创建了字典扩展(实际上并不难,但我认为它会默认提供)还是有更简单的方法可以做到这一点?
有扩展代码
extension Dictionary
{
public init (_ arrayOfTuples : Array<(Key, Value)>)
{
self.init(minimumCapacity: arrayOfTuples.count)
for tuple in arrayOfTuples
{
self[tuple.0] = tuple.1
}
}
}
【问题讨论】:
-
为什么要默认?没有将元组数组映射到字典的通用方法。在字典中,每个键都必须是唯一的,在元组数组中,允许任意数量的重复
keys。拿他们怎么办?改写?忽略? -
是的,@user28434 是对的。顺便说一句,看看这个stackoverflow.com/a/31447400/4272498
-
是的,你说得对@user28434,我没想到。
-
你为什么要创建一个元组数组?您可以直接使用 myArray 中的数据创建字典。
标签: ios swift dictionary tuples