2015-05-22 48 views
1

作爲一個實際的例子,假設我定義:在Swift中,給定一個變量是一個枚舉,我該如何判斷它是哪種情況?

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

,然後定義一個變量(或恆定)像這樣:

讓寶寶1 = Baby.Boy( 「喬」)

現在我想將baby1傳遞給函數,該函數返回一個字符串,該字符串取決於baby1是男孩還是女孩。我如何編寫該功能?還是沒有辦法做到這一點?

+0

寫作後這讓我意識到我的小例子簡化了實際問題。我知道如何回答這個問題,所以不要回應。但我仍然不知道如何編寫我真正想寫的功能。在再次詢問之前,我必須考慮如何更好地解釋這個問題。 – RobertL

回答

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" 
相關問題