2017-02-16 61 views
0

我可以在這裏匹配什麼來使這個測試通過?如何在Swift switch語句中匹配可選<*> .none?

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

    switch foo { 
    case nil: 
     break 

    default: 
     XCTFail() 
    } 
} 

試圖Optional.none編譯器會抱怨它不知道什麼泛型類型可選的是,這是公平的。但我不在乎,我只是想匹配,如果它是任何泛型類型的nil/.none

回答

0

算出來:

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

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

    default: 
     XCTFail() 
    } 
} 
+0

爲什麼不'案例零:'? – Alexander

+0

親自運行,看看它是否有效。 –

+0

它編譯,但不像預期的那樣。 '可選.none'工作,但 – Alexander