Swift的switch使用 ~= 操作符進行模式比對,case A, A是~=操作符的左參數,switch B, B是~=操作符的右參數。swift隐式調用 ~=操作符。
是以自定義模式比對的方法如下:
e.g.1
enum Day: Int {
case Monday, TuesDay, Wednesday, Thursday, Friday, Saturday, Sunday
}
func ~= (lhs:Int, rhs:Day) ->Bool {
return lhs == rhs.rawValue + 1
}
class Tutorial {
let day:Day?
...
}
extension Tutorial {
var order: String {
guard let day = day else {
return "not scheduled"
}
switch day {
case 1:
return "first"
case 2:
return "second"
case 3:
return "third"
case 4:
return "fourth"
case 5:
return "fifth"
case 6:
return "sixth"
case 7:
return "seventh"
default:
fatalError("invalid")
}
}
}
e.g.2
http://swifter.tips/pattern-match/
轉載于:https://www.cnblogs.com/HackHer/p/8509667.html