用参数创建一个枚举

时间:2018-09-21 14:49:37

标签: swift enums output enumeration

我的代码中有一些输出,所以我用一个枚举字符串将它们重新组合了。

问题是我有一些包含变量的输出。

是否可以创建一个接受变量的枚举?

以该字符串为例

print("The name of the Team is \(team.name)")

我想做这样的事情:

enum Exemple: String {
    case TEAM_NAME(name: String) = "The name of the Team is \(name)"}

print(Exemple.TEAM.NAME("Team 1").rawvalue)

谢谢

3 个答案:

答案 0 :(得分:1)

您可以为枚举定义实例方法或计算属性,该枚举将根据枚举大小写和关联值返回字符串值。请参阅游乐场示例。

enum Example {
    case firstItem
    case secondItem(withText: String)

    var stringValue: String {
        switch self {
        case .firstItem: return "Simple string"
        case .secondItem(withText: let text): return "String with additional text: \(text)"
        }
    }
}

let myEnumItem: Example = .secondItem(withText: "Test")
let text = myEnumItem.stringValue

答案 1 :(得分:0)

枚举不可能同时具有原始值和关联值。我认为您可以实现相关的价值。没有原始值,枚举仍然可以为您提供足够的信息来构成消息

答案 2 :(得分:0)

可能有一个带有与案例关联值的枚举。但是为了获得您想要的输出,您将需要一个函数。

enum Example {

    case teamName(name: String)
    case teamId(id: Int)

    func printName() {
        switch self {
        case .teamName(name: let name):
            print(name)
        default:
             break
        }
    }
}

let team = Example.teamName(name: "team1")
team.printName() // prints team1