如何在Swift 2中绑定多个case语句?

时间:2015-12-29 23:07:37

标签: swift enums

我正在学习Swift 2

我有这段代码:

case .Login(let parameters):
    return Alamofire.ParameterEncoding.JSON.encode(mutableURLRequest, parameters: parameters).0
case .GetUpComingRides(let parameters):
    return Alamofire.ParameterEncoding.JSON.encode(mutableURLRequest, parameters: parameters).0

有很多冗余。我试过这个:

case .Login(let parameters), .GetUpComingRides(let parameters):
    return Alamofire.ParameterEncoding.JSON.encode(mutableURLRequest, parameters: parameters).0

但我收到了immutable value 'parameters' was never used;

的警告

如何检查多个案例陈述并获取值?

我觉得我在这里缺少一些简单的东西。

1 个答案:

答案 0 :(得分:0)

在较新版本的Swift中,如果值的类型相同,则现在可以实现:

enum Foo {
    case bar(Int),  bas(Int)
}

var this = .random() ? Foo.bar(5) : Foo.bas(5)
switch this {
    case .bar(let foo), .bas(let foo): print(foo) // Always prints 5
}