代码之家  ›  专栏  ›  技术社区  ›  Srinivas

创建scala特征的新实例

  •  0
  • Srinivas  · 技术社区  · 7 年前

    请用Scala解释一下。

    如果我有

     trait A
    

    我做不到

    val a = new A
    

    但是这个例子的特点,

     trait DS[-In, +Out]{def apply(i: In): Out}
    

    val t1 = new DS[Any, Int]{def apply(i: Any) = i.toString.toInt}
    

    怎么允许这样?

    2 回复  |  直到 7 年前
        1
  •  8
  •   puhlen    7 年前

    所发生的事情是,通过提供一个类主体,您正在创建一个扩展该特性的匿名内联类。

        2
  •  5
  •   Reactormonk    7 年前

    {} .

    val a = new A {}