Swift ENUM 如何将 "rawValue"转换回枚举大小写?

标签 swift enums

我有一个枚举:

  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/

相关文章:

ios - 重载单一平等在Swift中

ios - SceneKit:围绕自身旋转节点

java - GWT警告: "Call to Enum method toString when enum obfuscation is enabled"

c++ - 如何将 C++ 枚举复制到 Objective C 枚举中

swift - 从 Swift 应用程序打开日历

swift - 如何在 UIWebview 中删除 PDF 的页码

sql - 如何计算 SQL 表中的所有枚举

c# - 混淆 C# 枚举和显式转换

java - Guava getIfPresent() 返回错误

ios - 使用 AVFoundation Swift 录制视频