【问题标题】:Use reserved keyword a enum case使用保留关键字枚举大小写
【发布时间】:2015-07-09 10:55:46
【问题描述】:

是否可以使用保留关键字作为枚举大小写?

例如:

enum MyEnum {
  case Self // compiler complains here
  case AnotherCase
}

在其他语言中,这可以通过以某种方式转义关键字来实现,例如在 scala 中我们使用反引号,例如

`type`

可以用作标识符,尽管type 是保留关键字。

swift中有没有类似的东西?

【问题讨论】:

  • "例如在 scala 中我们使用反引号 ..." 这正是您在 Swift 中可以做的 :)
  • @Daij-Djan 为了方便起见,它需要匹配 API 响应,否则我不会这样做
  • 看起来 Swift 现在支持这一点(可能在 Swift 2 中添加?)。太棒了:)

标签: swift enums


【解决方案1】:

来自 Swift 语言指南 (Naming Constants & Variables section)

如果您需要为常量或变量指定与保留的 Swift 关键字相同的名称,请在将关键字用作名称时用反引号 (`) 将其括起来。 但是,除非您别无选择,否则请避免使用关键字作为名称。

enum MyEnum {
  case `Self`
  case AnotherCase
}

并在有或没有反引号的情况下使用它

let x: MyEnum = .Self
let y = MyEnum.`Self`

【讨论】:

  • 哦,谢谢,我错过了文档中的那个小框。这是未来参考的链接:developer.apple.com/library/prerelease/ios/documentation/Swift/…
  • 但是,除非您别无选择,否则请避免使用关键字作为名称。 在评论中加粗。建议在答案中加粗。
  • @nhgrif 你能解释一下为什么吗?除了在声明时必须使用反引号之外还有什么缺点?
猜你喜欢
  • 2010-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多