在Swift中,给定一个枚举变量,我该如何判断它是哪种情况?

时间:2015-05-22 03:29:06

标签: swift enums

作为一个实际例子,假设我定义:

enum Baby {
    case Boy (String)
    case Girl (String)
}

然后定义一个变量(或常量),如下所示:

  让宝贝1 = Baby.Boy(" Joe")

现在我想将baby1传递给一个函数,该函数返回一个字符串,该字符串取决于baby1是男孩还是女孩。我该如何编写该功能?或者没有办法做到这一点?

1 个答案:

答案 0 :(得分:2)

我知道你说不回答,但这可能会有所帮助:

使用switch语句,您可以同时检测枚举的大小写并提取String以供使用:

enum Baby {
    case Boy (String)
    case Girl (String)
}

let baby1 = Baby.Boy("Joe")
let baby2 = Baby.Girl("Sue")

func babyDescription(baby: Baby) -> String {
    switch(baby) {
    case .Boy(let name):
        return "A baby boy named \(name)"
    case .Girl(let name):
        return "A baby girl named \(name)"
    }
}

println(babyDescription(baby1)) // "A baby boy named Joe"
println(babyDescription(baby2)) // "A baby girl named Sue"