Swift:枚举符合字符串,大小写= #file

问题描述 投票:-3回答:1

错误> Swift >枚举>字符串协议


我正在尝试进行枚举,其中所有元素均为文件名。像这样:

enum FileNames: String {
     case main = #file
     case other = #file.replace("main.swift", with: "other.swift")
}

这导致内部错误。 (分段错误:11)我最困惑。


我能够弄清楚为什么此代码不正确:

enum Foo: String {
    case one = "\(1)"
}

错误:枚举大小写的原始值必须是文字(不幸的是)


问题•为什么#file破坏枚举?•#file是文字字符串吗?•我注意到用“ Int”替换“ String”并用#line替换#file会导致相同的问题。

swift string xcode enums enumeration
1个回答
0
投票

文件不是文字。

常量也不是文字。字符串插值也不是文字。

字面量实际上是一个字符串。它不能是占位符值,不能是String(“ Hello”)。它只能是以下形式:"..."

甚至不能为'...'形式

您可以使用"""..."""做多行字符串,这很好

© www.soinside.com 2019 - 2024. All rights reserved.