11 2020 档案
摘要:自身类型是一种用于声明一个特性必须混合进另一个特性的方式,即使不是直接去扩展。这使得成员之间的依赖不需要import也可以实现。 一个自身类型可以缩小this关键字的类型,并且也是this的另一种别名标记符。这个语法看起来跟函数的语法很像但所包含的含义完全不同。 如果想要在特性中使用自身类型,需要编
阅读全文
摘要:有时我们需要标注一个对象的类型是其他多个对象的子类型。在Scala中我可以用复合类型去标记多个类型的交集。 如下我们有两个特性Cloneable和Resetable: trait Cloneable extends java.lang.Cloneable { override def clone()
阅读全文
摘要:在Scala中,类型参数和抽象类型成员可能受类型边界约束。这种类型界限限制了类型变量的具体值,并可能揭示有关此类成员的更多信息。一个上界类型T<:A ,这样声明表示类型变量T 是依赖于类型A的子类型。下面的例子描述了类型参数PetContainer的上界类型关系。 abstract class An
阅读全文
摘要:泛型类是指传递类型作为形参的类。在集合类中用的比较多。 定义泛型类 泛型类用中括号传递一个形参。约定用A作为标志符,当然其他名字也可以用。 class Stack[A] { private var elements: List[A] = Nil def push(x: A) { elements =
阅读全文
摘要:Scala提供了一个用于创建新的序列集合的轻量级语法。解析的格式为 for (enumerators) yield e,这里的 enumerators 表示用逗号分割的枚举列表。 一个enumerator 可以是介绍变量的生成器,也可以是一个过滤器。解释器会给每个绑定生成的enumerators生成
阅读全文