我想从一个结构数组中创建一个不可变的字典。有没有办法直接在语言中做到这一点?我知道这可以通过一个临时的可变字典完成。swift中不可变的字典初始化
class Foo {
let key: Int
// ... other stuff
init(key:Int){ self.key = key }
}
let listOfFoos : [Foo] = []
var dict = [Int:Foo]()
for foo in listOfFoos { dict[foo.key] = foo }
let immutableDict = dict
,或者使用的NSDictionary如果foo是一个对象
let immutableDict2 : [Int:Foo] = NSDictionary(objects:listOfFoos, forKeys: listOfFoos.map{$0.key}) as! [Int:Foo]
据我所知,这是做不到的。解决方法是创建一个函数来返回字典。在字典里面创建一个可变字典,然后返回它 – user1046037