You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何无法为Int类型的Swift枚举成员添加单引号?

为什么无法为Int类型的枚举成员添加单引号?

首先得澄清一个小混淆:你提到的“单引号”应该是Swift里的**反引号()**——就是你代码里包裹default`的那个符号。它的核心作用是帮我们转义Swift的关键字,让这些关键字能被用作变量名、枚举成员名这类标识符。

那回到你的问题:Int类型的枚举成员其实是可以加反引号的,完全没有限制!比如你可以把代码改成这样,完全能正常编译:

enum Theme: Int {
    case `default`, `dark`, `graphical`
}

甚至如果给成员指定原始值,加反引号也没问题:

enum Theme: Int {
    case `default` = 0, `dark` = 1, `graphical` = 2
}

那你可能是遇到了这两种误区:

  • 你误把**单引号(')**当成了反引号:单引号在Swift里是用来表示单个字符(Character类型)的,如果你尝试用单引号包裹枚举成员名(比如case 'default'),这肯定会报错,因为标识符不允许这么写。
  • 你尝试给Int枚举的原始值加单引号:比如写成case default = '0',这也会报错,因为Int类型的原始值必须是整数字面量,而单引号包裹的是Character,类型不匹配。

再回到你给出的代码,default被反引号包裹是因为它是Swift的关键字(比如switch语句里的default分支),必须用反引号转义才能作为枚举成员名;而dark、graphical不是关键字,所以不需要加反引号——但如果你想加,完全没问题,和枚举是Int类型没有任何关系。

内容的提问来源于stack exchange,提问作者Laurence Wingo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:36:11