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

In Swift, given a variable that is an enum, how can I tell which case it is?

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

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

然后像这样定义一个变量(或常量):

let baby1 = Baby.Boy("Joe")

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

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

使用switch语句,可以同时检测enum的大小写,提取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"