2017-04-04 61 views
1

我正在使用swift enum s。而我enum看起來是這樣的:如何獲取枚舉大小寫的值?

enum DataStructures<T> { 
    case element(value: T) 
    case elements(value: [T]) 
} 

,我初始化DataStructures這樣的:

DataStructures.element(value: resultElement) 

resultElementResultElement類型:

resultElement: ResultElement 

我的問題是:有沒有辦法從枚舉的case中提取resultElement的值,以便在之後返回該對象已經作爲參數傳遞給某個方法了嗎?此外,該參數看起來像這樣:

data: DataStructures<ResultElement> 

感謝您的回答。

回答

1

使用模式匹配:

if case .element(let value) = someParameter { 
    print(value) // or do whatever you want with it 
} else { 
    // do some other thing in the case of the parameter not being .element 
} 
+0

謝謝先生,這幫助我解決了我的問題。 – MattCodes

+0

@MattCodes如果您認爲我的答案回答了您的問題,請考慮點擊該選中標記以接受它! – Sweeper

1
enum DataStructures<T> { 
    case element(value: T) 
    case elements(value: [T]) 
} 

let x = DataStructures<Int>.element(value: 5) 

switch x { 
case .element(let value): 
    print(value) // 5 
case .elements(let values): 
    print(values) 
} 

可以參考一下這裏(請參閱相關的價值部分): https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Enumerations.html

祝你好運!

+0

感謝您的回答。我不熟悉模式匹配,就像Sweeper建議它在回答下面一樣。 – MattCodes