[英]Swift typealias for enum case
好吧,我已经完成了我的作业并阅读了我能找到的内容,但我似乎无法找到是否可以用Swift完成。 我有一个我在整个地方使用的枚举: SomeEnum
和一个如果它的case
是一个冗长的SomeEnum.SomeLengthyCaseName
而且我已经厌倦了在我的代码中看到它。 我不想重构,因为我喜欢新手维护我的代码的情况的描述性。
因此,这里的问题:是否有可能创建一个typealias
为SomeEnum.SomeLengthyCaseName
? 如果是这样,怎么样? 这是我尝试过的:
enum SomeEnum {
case SomeLengthyCaseName
}
typealias SLCN = SomeEnum.SomeLengthyCaseName
这就是语法,但Xcode中给出了一个编译器错误说“ SomeLenghtyCaseName
不是成员SomeEnum
。”
预备,准备,开始!
这是一个误导性的错误信息 。
真正的问题是SomeLengthyCaseName
不是一个类型 。 因此,您不能使用typealias
,它仅适用于类型的别名。 (例如,你可以说typealias SE = SomeEnum
。)
相反,您可以使用全局常量:
let SLCN = SomeEnum.SomeLengthyCaseName
或者,更好的是,enum本身的静态常量:
enum SomeEnum {
case SomeLengthyCaseName
static let SLCN = SomeEnum.SomeLengthyCaseName
}
let x: SomeEnum = .SLCN
由于SomeEnum.SomeLengthyCaseName
不是一个类型,所以它是不可能的,它是SomeEnum
类型的值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.