如何在Swift开关语句中匹配Optional< *> .none?

时间:2017-02-16 12:53:05

标签: swift swift3 pattern-matching

我可以在这里匹配什么来使这个测试通过?

func testMatchNone() {
    let none: String? = nil
    let foo: Any = none

    switch foo {
    case nil:
        break

    default:
        XCTFail()
    }
}

尝试Optional.none编译器抱怨它不知道可选的泛型类型是什么,这是公平的。但我不在乎,我只想匹配任何泛型类型的nil / .none

1 个答案:

答案 0 :(得分:0)

解决了这个问题:

func testMatchNone() {
    let none: String? = nil
    let foo: Any = none

    switch foo {
    case Optional<Any>.none:
        break

    default:
        XCTFail()
    }
}