Swift中的模式匹配

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关键字。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 你来过了 却又走了 象是一阵风掠过 只是带走了树叶的笑容 留给它那么多的回忆和期盼。 你来过了 却又走了 象是雨后...
    每天读点美文阅读 284评论 0 0
  • 一双鞋,一条路,一个跑者的世界。 越野带给我们的不仅仅是身体的舒畅,更重要的是精神世界的丰盈与充实,与风雨对抗,与...
    琴弦世界Run阅读 429评论 0 1
  • 感恩日语老师这三个月的辛苦付出,对我如此的包容与理解 感恩一位家人来给我按确认键,让我有走向精油学习,净化空间师的...
    RINJaime阅读 280评论 0 2
  • 是把自己有限的生命付与自己的飘渺的理想还是及时行乐,享受短暂生命带来的肉体的快乐? 这是一个两难的问题...
    胡锐1981阅读 439评论 0 2