好吧,我已经完成了我的作业并阅读了我能找到的内容,但我似乎无法找到是否可以通过Swift完成。我有一个我在整个地方使用的枚举:SomeEnum
和一个如果case
s是一个冗长的SomeEnum.SomeLengthyCaseName
并且我厌倦了在我的代码中看到它。我不想重构,因为我喜欢新手维护我的代码的情况的描述性。
所以这就是问题:是否可以为typealias
创建SomeEnum.SomeLengthyCaseName
?如果是这样,怎么样?这是我尝试过的:
enum SomeEnum {
case SomeLengthyCaseName
}
typealias SLCN = SomeEnum.SomeLengthyCaseName
这是语法,但Xcode给出了一个编译错误,说“SomeLenghtyCaseName
不是SomeEnum
的成员。”
准备好,开始吧!
答案 0 :(得分:8)
真正的问题是SomeLengthyCaseName
不是类型 。因此,您无法使用typealias
,这仅适用于类型的别名。 (例如,您可以说typealias SE = SomeEnum
。)
相反,您可以使用全局常量:
let SLCN = SomeEnum.SomeLengthyCaseName
或者,更好的是,enum本身的静态常量:
enum SomeEnum {
case SomeLengthyCaseName
static let SLCN = SomeEnum.SomeLengthyCaseName
}
let x: SomeEnum = .SLCN
答案 1 :(得分:1)
由于SomeEnum.SomeLengthyCaseName
不是类型,因此不可能,SomeEnum
类型的值。