Swift富含表達力的列舉!
阿新 • • 發佈:2019-02-09
是的,標題是感嘆句!是對Swift列舉強大的也是夠了的一種表達 ;)
舉個栗子,一個很簡單的類:
class Trace{
enum TraceResult{
case success
case failed
}
}
如上,Trace用來跟蹤使用者每日的行為,可以看到包括成功和失敗兩種情況。
如果我允許使用者自定義結果呢???有的使用者不希望簡單的將結果歸為成功和失敗,他/她希望結果體現出一個程度值,比如:A,B,C,D
這該如何呢?
其實不管使用者定義什麼樣的結果,我只要知道它表示的東東就可以了,比如說String。
只要在列舉中新增一個自定義項就可以了:
enum TraceResult{
case success
case failed
case custom
}
但是腫麼體現出自定義的效果呢???用列舉附加吧:
enum TraceResult{
case success
case failed
case custom(String)
}
我們這樣定義和取回自定義的值:
let result = Trace.TraceResult.custom("Super Good")
if case let TraceResult.custom(value) = result{
print("custom value is \(value)" )
}
That’s it,有感而發,大家以管窺豹一下吧 ;)