我已经看到(并听到)有关向Scala添加虚拟类的很多声音(根据virtual types,它已经具有Martin Odersky)。

外行对什么是虚拟类型有何看法(也许举个例子),如果scala具有虚拟类,可能是

([我没有使用C或C++的经验,所以希望任何答案都不要引用这些语言]。)

最佳答案

虚拟类型很简单:

  • 类和特征可以具有类型成员。例如。
    trait Foo {
      type T
    }
    
  • 可以完善它们(但一旦定义就不能覆盖):
    class Foo1 extends Foo {
      type T <: AnyVal
    }
    
    class Foo2 extends Foo1 {
      override type T = Boolean
    }
    
    class Foo3 extends Foo2 {
      // override type T = Int // rejected by the compiler – would be unsound
    }
    

  • 这是an example of virtual classes in a Java-descendent language(cclass是一个虚拟类):

    关于scala - 我可以使用虚拟类(class)做什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3035807/

    10-13 07:24