type-members

    4熱度

    1回答

    class EG { private[this] type TypeMember = A private[this] var field: Int = 0 } 可以像字段一樣爲類型成員指定訪問修飾符。在OOP的情況下,我們很清楚,領域的encapsulation確實提供了有益於防止意外共享狀態和限制狀態修改的好處。就我所知,類型成員只能在Scala中找到,而且在很多地方,

    9熱度

    1回答

    這行之有效 class MyClass[T<: Actor: ClassTag] extends Actor { //.... } 但這並不適當做以下No ClassTag available for MyClass.this.T class MyClass extends Actor { type T<: Actor //... } 即使錯誤: clas

    3熱度

    1回答

    爲什麼使用綁定到類值參數的類型成員會生成「類型不匹配」錯誤?例如: scala> class A { type t } defined class A scala> class B(val a: A) defined class B scala> val aInt = new A { type t = Int } aInt: A{type t = Int} = [email prot

    1熱度

    1回答

    我希望我的特質Outer具有兩個抽象成員類型Inner1和Inner2。我想Inner2也有抽象成員類型Inner1。我想要求Outer#Inner1等於Inner2#Inner1。什麼是最令人信服的方式來做到這一點?到目前爲止,我有 trait HaveInner1 { type Inner1 } trait Outer { type Inner1 type

    3熱度

    1回答

    我在爲具有類型成員的類型解析scala.reflect.Manifest時遇到問題。 例如, import scala.reflect.Manifest trait Foo { type T } trait Bar[T] object Main extends App { val barM: Manifest[Bar[Int]] = implicitl

    0熱度

    1回答

    我可以在Scala中引用一個抽象類型成員的字段,例如, abstract class C { type T val t: T } 但似乎我不能做同樣的事,一個構造函數的參數: abstract class C(t: T) { // not found: type T type T } 爲什麼?

    0熱度

    2回答

    快速提問爲什麼我們無法實例化類型成員?例如藉此例如: abstract class SimpleApplicationLoader { type MyComponents <: BuiltInComponentsFromContext def load(context: Context) = { new MyComponents(context).applicati

    2熱度

    2回答

    我的情況是這樣的: trait A { type B def foo(b: B) } trait C[D <: A] { val d: D def createB(): D#B def bar() { d.foo(createB) } } 在REPL,它抱怨 <console>:24: error: type mi

    1熱度

    2回答

    對不起,標題很混亂。 我正在嘗試編寫一些Request和Response類用於驗證和解析的目的。我希望在編譯時有一些類型的保證,但仍然有運行時多態性。我有以下基類: abstract class Response() abstract class Request() { type ResponseType = Response def ResponseClass: Clas

    3熱度

    2回答

    如果爲其超類型A定義了隱式,是否可以解析類型B的隱式參數? 下面是一個例子: 我有一個可枚舉類型類: trait Enumerable[A] { def name(a: A): String def list: List[A] //... other methods } object Enumeration { def name[A, T >: