作为一个实际例子,假设我定义:
enum Baby {
case Boy (String)
case Girl (String)
}
然后定义一个变量(或常量),如下所示:
让宝贝1 = Baby.Boy(" Joe")
现在我想将baby1传递给一个函数,该函数返回一个字符串,该字符串取决于baby1是男孩还是女孩。我该如何编写该功能?或者没有办法做到这一点?
答案 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"