如何初始化Swift Collections库中的OrderedDictionary有序字典
正确初始化方式
你遇到的报错是因为OrderedDictionary的泛型参数声明语法使用错误,有两种常用的正确初始化空实例的写法:
写法1:空字典字面量初始化
修正泛型语法即可,OrderedDictionary的泛型参数用逗号分隔Key和Value类型,不要使用原生字典简写的冒号语法:
var responses: OrderedDictionary<String, [TransactionsDataItemsClassAModel]> = [:]
写法2:显式调用空构造器(更推荐,可读性更高)
直接通过泛型参数指定类型后调用空构造器,不需要依赖字面量的类型推导:
var responses = OrderedDictionary<String, [TransactionsDataItemsClassAModel]>()
错误原因说明
你之前的写法OrderedDictionary<String: <TransactionsDataItemsClassAModel>>有两处语法错误:
- 泛型参数列表内应该用逗号分隔Key和Value类型,冒号是原生字典
[Key: Value]语法糖的专属写法,不能用于泛型参数声明 - 多了一层多余的尖括号包裹Value类型,导致编译器无法识别类型
原生字典的[String: [TransactionsDataItemsClassAModel]]写法本质是Dictionary<String, [TransactionsDataItemsClassAModel]>的语法糖,OrderedDictionary没有对应的语法糖,需要按标准泛型语法声明类型。
内容的提问来源于stack exchange,提问作者Arturo
相关产品推荐
相关产品推荐

