这有什么原因吗?注意:如果枚举不是嵌套的,则枚举作为字典键。
struct OuterStruct
{
enum InnerEnum
{
case none
case a
case b
}
}
var dict : [OuterStruct.InnerEnum: String] = [OuterStruct.InnerEnum: String]()
答案 0 :(得分:4)
您可以使用传统方式实例化字典来解决这个问题:
var dict : [OuterStruct.InnerEnum: String] = Dictionary<OuterStruct.InnerEnum, String>()
请注意,您可以使用类型推断并避免指定变量类型:
var dict = Dictionary<OuterStruct.InnerEnum, String>()
至于为什么简写语法不起作用,我没有答案 - 我认为你应该提出一个雷达。我尝试将InnerEnum
转换为结构和类,并报告相同的错误。