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