繁体   English   中英

枚举案例的Swift类型

[英]Swift typealias for enum case

好吧,我已经完成了我的作业并阅读了我能找到的内容,但我似乎无法找到是否可以用Swift完成。 我有一个我在整个地方使用的枚举: SomeEnum和一个如果它的case是一个冗长的SomeEnum.SomeLengthyCaseName而且我已经厌倦了在我的代码中看到它。 我不想重构,因为我喜欢新手维护我的代码的情况的描述性。

因此,这里的问题:是否有可能创建一个typealiasSomeEnum.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM