代码之家  ›  专栏  ›  技术社区  ›  Nick

用于检查枚举及其关联值的压缩代码[重复]

  •  0
  • Nick  · 技术社区  · 6 年前

    我有两个枚举:

    enum Bar {
        case bar1
        case bar2
    }
    
    enum Foo {
        case foo1
        case foo2(bar: Bar)
    }
    

    和一个变量:

    var v: Foo = ...
    

    v 属于 foo2 类型,并且其关联值为 bar2

    // if v is foo2_bar2 I print "ok"
    
    switch v {
    case .foo2(let type):
        if type == .bar2 {
            print("ok")
        }
    default:
        break
    }
    

    还有更紧凑的表格吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Mo Abdul-Hameed Martheli    6 年前

    您可以实现如下相同的目标:

    let x: Foo = .foo2(bar: .bar2)
    
    if case let .foo2(bar) = x, bar == .bar2 {
        print("ok")
    }