错误> 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会导致相同的问题。
常量也不是文字。字符串插值也不是文字。
字面量实际上是一个字符串。它不能是占位符值,不能是String(“ Hello”)。它只能是以下形式:"..."
甚至不能为'...'
形式
您可以使用"""..."""
做多行字符串,这很好