abstract-type相关内容

在具体类中使用抽象类型?

scala>类 A { 类型 T (new A).f("bar"):9: 错误:类型不匹配;找到:java.lang.String("bar")必需:_1.T 其中 val _1:A(new A).f("bar")^ A 类具有抽象类型 T,但不是抽象类.创建A 的对象(如图所示)并没有定义类 ..
发布时间:2021-07-15 20:03:02 其他开发

抽象类型与类型参数

在什么情况下抽象类型应该优先于类型参数? 解决方案 添加到我的先前关于抽象类型与参数的答案,您还有 JESSE EICHAR 最近的博文(2010 年,5 月 3 日)强调了一些主要差异: 特质 C1[A] {定义获取:Adef doit(a:A):A}性状 C2 {A型定义获取:Adef doit(a:A):A} 在C2的情况下,参数被“埋没"(作为内部抽象类型). (除了,正如r ..
发布时间:2021-07-15 19:17:24 其他开发

单例对象的抽象类型成员

抽象成员方法在单例对象中是非法的 scala>对象 Foo {|def g: 整数|}def g: 整数^第 2 行:错误:只有特征和抽象类可以声明但未定义的成员 作为抽象值成员 scala>对象 Foo {|val x: 整数|}val x: 整数^第 2 行:错误:只有特征和抽象类可以声明但未定义的成员 但是抽象类型成员在单例对象中是合法的 scala>对象 Foo {|A型|}对象 ..
发布时间:2021-06-13 19:41:29 其他开发

从基本抽象类构造子类

我想在抽象类中定义一个构造器,该构造器将创建具体的子类。 抽象类A { 类型Impl< ;: A def Construct():Impl = { val res = new Impl()//编译错误:需要类类型,但是A.this.Impl找到 / /使用res } } 执行更多初始化B类扩展A {type Impl = B} C类扩展A {type Impl = ..
发布时间:2020-05-31 22:36:14 其他开发

Scala:“类型A = XXX"和“最终类型A = XX"之间的区别?

假设我有一个抽象类型AA和一个具体类型XXX: trait AA { type A = XXX final type B = XXX } 在这种情况下,在任何AA子类中,类型A和B都不能被覆盖,因此关键字final看起来是完全多余的.这句话正确吗? 解决方案 很难证明它们是完全相同的,但是我要指出的是,它们减去了一些无用的怪癖. 无用的怪癖 首先也是最明显的是 ..
发布时间:2020-05-29 00:45:21 其他开发

在scala中混合类型参数和抽象类型

我尝试使用前面的问题的答案来实施一个小图库。我们的想法是将图形看作colections,顶点包装集合元素。 我想使用抽象类型来表示Vertex和Edge类型(因为类型安全)和我想使用类型参数来表示集合元素的类型(因为我想在实例化时很容易地定义它们)。然而,当尝试最基本的示例I可以想一想,我遇到了编译错误。下面是例子: 包图 抽象类GraphKind [T] { type V ..
发布时间:2018-04-21 20:08:24 其他开发