Tag: 性状

特质inheritance与自我types注释的区别

在斯卡拉,我已经看到了构造 trait T extends S 和 trait T { this: S => 用来实现类似的事情(即S中的抽象方法必须在创build实例之前被定义)。 他们之间有什么区别? 你为什么要用另一个呢?

什么是密封特质?

密封的类在“Scala编程”中有描述,但是密封的特性不是。 我在哪里可以find关于密封特性的更多信息? 我想知道,如果一个密封的特性是一个密封的类相同? 或者,如果不是,有什么区别? 什么时候使用密封特质是什么时候?

什么时候在Scala特性中使用val或def?

我正在浏览有效的scala幻灯片 ,并在第10 张幻灯片中提到,从不使用val作为抽象成员的trait ,而是使用def 。 幻灯片没有详细提及为什么在trait使用抽象的val是一种反模式。 我将不胜感激,如果有人可以解释最佳做法围绕使用val vs def抽象方法的特点