作为一个实际的例子,假设我定义:
enum Baby {
case Boy (String)
case Girl (String)
}
,然后像这样定义一个变量(或常量):
let baby1 = Baby.Boy("Joe")
现在我想将baby1传递给一个函数,该函数返回一个字符串,该字符串取决于baby1是男孩还是女孩。我怎么写这个函数?还是没有办法做到这一点?
我知道你说不要回答,但这可能会有帮助:
使用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"