加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scala的apply unapply unapplySeq 语法糖

发布时间:2020-12-16 09:17:15 所属栏目:安全 来源:网络整理
导读:? apply 可以理解为注入 unapply unapplySeq 可以理解为提取 ? apply 与 unapply 虽然名字相近,但是使用起来区别挺大。 apply有点像构造函数 unapply主要是结合模式匹配进行提取工作 unapply 与 unapplySeq的共同点是返回值类型都是Option,区别是一个返回

?apply 可以理解为注入

unapply unapplySeq 可以理解为提取
?
apply 与 unapply 虽然名字相近,但是使用起来区别挺大。
apply有点像构造函数
unapply主要是结合模式匹配进行提取工作
unapply 与 unapplySeq的共同点是返回值类型都是Option,区别是一个返回对象,一个返回集合对象

apply的常用套路

在函数调用的时候使用 对象名加个括号,等于调用个该对象的apply方法

而且在一些数据类型中,同样也有该语法糖,例如集合,调用集合名加个括号,也相当于调用apply方法

套路1:自定义apply

套路2:配合class使用

在一个类的伴生对象中定义apply方法,并在apply方法中new该类。

最终在使用该类时,可以省去new关键字,使用语法糖即可。

使用语法糖括号,来调用类中的方法

调用单例类中的方法,则是不使用括号

一般这么做是为了更方便简洁的传值,或者说更加简便的调用class

unapply unapplySeq的常用套路

提取器,顾名思义就是提取内容,并且还是个方法,那我们就可以把自己的业务逻辑放进去提取内容

套路1:使用unapply来做个简单操作,例如提取前两位字符并且转换成大写

套路2:使用unapplySeq来提取个集合

在使用模式匹配的时候,可以使用下划线占位符,代替那些不想匹配的位置

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读