1、模式匹配
2、where和模式匹配
1、模式匹配
- 虽然在Swift中没有内置的正则表达式支持,但是一个和正则表达式匹配有些相似的特性其实是内置于Swift中的,那就是模式匹配。
- 在Swift中,使用=来表示模式匹配的操作符。=操作符左右两边分别接受可以判断等的类型,可以与nil比较的类型,以及一个范围输入和某个特定值,返回值很明了,都是是否匹配成功的Bool值。
- Swift的switch就是使用了~=操作符进行模式匹配,case指定的模式作为左参数输入,而等待匹配的被switch的元素作为操作符的右侧参数。只不过这个调用是由Swift隐式地完成的。
- 在switch中做case判断的时候,我们完全可以使用我们自定义的模式匹配方法来进行判断,只需要重载~=操作符就可以。
2、where和模式匹配
where的使用场合
- 在Switch语句中,可以使用where来限定某些条件case
- 在for中也可以使用where来做类似的条件限定
- 有一些场合是只有使用where才能准确表达的,比如在泛型中想要对方法的类型进行限定时。
- 有些时候,我们希望一个接口扩展的默认实现只在某些特定的条件下适用,这是就可以使用where关键字。
网友评论