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

斯卡拉 – “val a:A =新B”,有什么意义?

发布时间:2020-12-16 18:46:27 所属栏目:安全 来源:网络整理
导读:这个成语(?)在楼梯书中出现了很多次: val b:A = new B 要么 val b = new Bval b2:A = b 除了试图在教科书中提出一些观点之外,你为什么要声明一种与推断类型不同的类型? 顺便说一句,这个名字是什么? 解决方法 它可用于: 描述程序员意图(我创建了一个B,但
这个成语(?)在楼梯书中出现了很多次:

val b:A = new B

要么

val b = new B
val b2:A = b

除了试图在教科书中提出一些观点之外,你为什么要声明一种与推断类型不同的类型?

顺便说一句,这个名字是什么?

解决方法

它可用于:

>描述程序员意图(我创建了一个B,但我只对A行为感兴趣)
>确保您只使用A中定义的方法.它将允许交换混凝土
?以后实现,而无需更改大部分代码.
>简化使用IDE或时可用的自动完成列表
?REPL.
>在某个时刻强制进行隐式转换.

对于更复杂的实例化,它确保推断类型是正确的.例如

sealed trait Answer
case object Yes extends Answer
case object No extends Answer

scala> val a = List( Yes,Yes,No )
a: List[Product with Serializable with Answer] = List(Yes,No)

scala> val b: List[Answer] = List( Yes,No )
b: List[Answer] = List(Yes,No)

(编辑:李大同)

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

    推荐文章
      热点阅读