好了,我已经完成作业并阅读了可以找到的内容,但似乎无法找到使用Swift可以完成的任务。我有一个遍历整个地方的枚举:SomeEnum
和一个case
(如果它是SomeEnum.SomeLengthyCaseName
)是一个冗长的typealias
,我讨厌在我的代码中看到它。我不想重构,因为我喜欢新手维护我的代码时的描述性。
所以这是一个问题:是否可以为SomeEnum.SomeLengthyCaseName
创建SomeLenghtyCaseName
?如果是这样,怎么办?这是我尝试过的:
enum SomeEnum {
case SomeLengthyCaseName
}
typealias SLCN = SomeEnum.SomeLengthyCaseName
这就是语法,但是Xcode给出了一个编译器错误,指出“
SomeEnum
不是ojit_code的成员”。预备,准备,开始!
最佳答案
那是misleading error message。
真正的问题是SomeLengthyCaseName
是而不是类型。因此,您不能使用typealias
,后者仅用于类型的别名。 (例如,您可以说typealias SE = SomeEnum
。)
相反,您可以只使用全局常量:
let SLCN = SomeEnum.SomeLengthyCaseName
或者,更好的是,枚举本身上的静态常量:
enum SomeEnum {
case SomeLengthyCaseName
static let SLCN = SomeEnum.SomeLengthyCaseName
}
let x: SomeEnum = .SLCN
关于ios - 枚举大小写的Swift Typealias,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32161457/