type-parameter

    1熱度

    6回答

    說我有Int小號 scala> val list = List(1, 2, 3, 4, 5) list: List[Int] = List(1, 2, 3, 4, 5) 理所當然的List,Scala是足夠聰明返回正確的類型我。現在,考慮到,我對List的特定功能不感興趣,而是想要有一個更一般的(超)類型,比如Traversable。很明顯,我可以指定它: scala> val trav =

    2熱度

    1回答

    的reduceLeft一些Seq[A]簽名是 def reduceLeft [B >: A] (f: (B, A) => B): B 類型的A是已知的,但下限>:告訴我們,B可以爲A任何超類型。 爲什麼會這樣呢?爲什麼不 def reduceLeft (f: (A, A) => A): A 我們已經知道該序列的頭型A,所以我想不出如何B可能是A比相等的任何其他。你能提供一個例子B是一些超級

    10熱度

    2回答

    的性狀Map[A,+B]有一個方法 def minBy [B] (f: ((A, B)) ⇒ B)(implicit cmp: Ordering[B]): (A, B) 我預期性狀的B是一樣的一個的方法,但我仍無法理解這一點: val m2 = Map('a -> "1", 'b ->"2" ,'c ->"3") m2.minBy((t:(Symbol,String))=>Integer.p

    1熱度

    4回答

    不知道以前是否有這個問題,所以如果有問題,請指出另一個問題。 我有一個方法是這樣的: private void SomeMethod<TLocation>(int x, int y) where TLocation : DataLocation { // } 在方法i希望與調用它,我有一個枚舉,我想打電話給同類型參數的方法。 public enum LocationType {

    5熱度

    1回答

    我試圖讓Scala找到來自單例類型的路徑依賴類型的正確類型。 首先,這裏是該示例的類型的容器,和一個實例: trait Container { type X def get(): X } val container = new Container { type X = String def get(): X = "" } 我可以看到在第一次嘗試的

    3熱度

    2回答

    在我的應用我想用這樣的特點: trait HasBuffer[+A] { var items = Buffer[A]() def add[A](item: A) { items += item } def remove[A](item: A) { items -= item } def set(is: Buffer[A]) { items = is }

    4熱度

    3回答

    我很難從C++ /模板轉換到Scala。我習慣於能夠對我想要的模板參數T使用任何操作,只要我用來實例化T的任何操作都支持這些操作(基本上是編譯時Duck打字)。我無法在Scala中找到相應的成語,這將允許我使用單個類型參數定義抽象類,並且需要特定類型T的接口。 我幾乎可以工作,但我無法弄清楚如何告訴抽象類(紋理[T <:Summable [T]])T支持來自Int的轉換/構造。如何將隱式轉換添加到

    6熱度

    2回答

    我想放寬對特徵類型參數的約束,並將它們強加於證據參數形式的方法。鑑於一些骨骼設置: trait State[Repr] object Observer { def apply[Repr <: State[Repr]](reader: Reader[Repr]): Observer[Repr] = new Observer[Repr] {} } trait Observer

    28熱度

    2回答

    的類型參數化陣列如果Scala中IDE嘗試以下方法: val chars = Array[Char](256) 它是所有細。但是,如果我這樣做: val len = 256 val chars = Array[Char](len) 它說,它需要一個Char,而不是len?爲什麼?我期望的行爲是一樣的!爲什麼它認爲我想把它放在數組中而不是指定它的大小?據我所知,沒有數組的構造函數需要一個參

    5熱度

    7回答

    Eclipse表示由於泛型類型橡皮擦而導致Typeof參數不允許使用instanceof操作。 我同意在運行時沒有類型信息。但請考慮以下類的通用聲明: class SomeClass<T>{ T t; SomeClass(Object o){ System.out.println(o instanceof T); // Illegal } } 在