我想從一個結構數組中創建一個不可變的字典。有沒有辦法直接在語言中做到這一點?我知道這可以通過一個臨時的可變字典完成。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