Swift枚举声明出现Extraneous '.' in enum 'case' declaration错误如何解决
错误触发原因
你混淆了枚举成员的声明场景和枚举成员的使用场景的语法规则:
- 枚举成员使用场景:当上下文已经明确枚举类型时,可以用点语法简写枚举成员,比如给明确类型的枚举变量赋值
let value: SomeEnum = .one、switch分支匹配case .one:,你之前看到的.someName、case .someName都属于这类使用场景的写法。 - 枚举成员声明场景:在枚举定义内部声明case时,不需要添加
.前缀,你在定义时给case后的成员名额外加了.,所以触发了对应的报错。
修复方案
直接删除枚举定义中case后多余的.即可,修正后的代码如下:
enum SomeEnum { case one case two }
声明完成后,你在其他地方使用该枚举的成员时,依然可以正常使用点语法简写:
// 赋值使用 let selectedOption: SomeEnum = .two // switch匹配使用 switch selectedOption { case .one: print("选择了第一项") case .two: print("选择了第二项") }
内容的提问来源于stack exchange,提问作者pkamb
相关产品推荐
相关产品推荐

