Scala特征混合秩序和超级呼叫
发布时间:2020-12-16 19:16:08 所属栏目:安全 来源:网络整理
导读:我有这个代码: trait base{ def msg: Unit= { println{"base"} }}trait foo extends base { abstract override def msg: Unit ={ super.msg println("foo") }}class base2{ def msg:Unit = { println{"base 2"} }}class test extends base2 with foo{ overr
我有这个代码:
trait base{ def msg: Unit= { println{"base"} } } trait foo extends base { abstract override def msg: Unit ={ super.msg println("foo") } } class base2{ def msg:Unit = { println{"base 2"} } } class test extends base2 with foo{ override def msg: Unit ={ super.msg println("done") } } 如果我调用(新测试).msg,这会打印出如下内容:base,foo,done 但是,如果我将基本特征更改为: trait base{ def msg: Unit } 它打印出的东西如:base 2,done 我理解with的顺序是从右到左(最后一个是第一个)但是如何延伸?为什么有时会打印base2,但有时会打印? 解决方法
省略实现时,base是特征的模板,具有不同的评估规则.见
Scala specification
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- angularjs – 在html头部有条件地呈现css
- 对WebService "style" "use"消息格
- angularjs – 如何传递参数使用ui-sref在ui路由器到控制器
- bash – “无类型”是否与“动态类型”相同?
- bash – 如何管道标准输出,同时保持它在屏幕上? (而不是输
- scala – 将自定义标记生成器与Parsers子类连接
- Webservice Jersey Test Framework
- 【数据结构】红黑树的实现
- unix – 如何在完成后停止iperf服务器?
- twitter-bootstrap – 当在移动设备上查看我的Twitter引导程