我有一个枚举:
enum switch : String {
case on = "powerOn"
case off = "powerOff"
var japanswitch : String {
case .on : return "onpu"
case .off : return "offu"
}
}
在我的代码中,我的函数将“powerOn”作为纯字符串参数传递下去。问题是我的功能需要将“powerOn”翻译成 japanswitch。
但问题是“powerOn”现在只是一个字符串,与 japanswitch 完全没有关系。
如何将“powerOn”翻译成 japanswitch?期望的结果应该是“onpu”。
最佳答案
首先你需要修复你的代码以便它编译:
enum Switch : String {
case on = "powerOn"
case off = "powerOff"
var japanswitch : String {
switch self {
case .on : return "onpu"
case .off : return "offu"
}
}
}
那么使用之后就可以达到你的目的了:
let japanese = Switch(rawValue:"powerOn")?.japanswitch
请注意,japanese
是可选的;您需要决定如何处理无效的原始值。
关于Swift ENUM 如何将 "rawValue"转换回枚举大小写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52184698/