2017-04-04 28 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