2012-11-24 2 views
5

Non so il motivo per cui il codice seguente scala non può essere compilato:errore di compilazione scala: tipo mancata corrispondenza; trovato: IndexedSeq [Int] richiesto: scala.collection.immutable.Seq [Int]

import collection.immutable.Seq 
def foo(nodes: Seq[Int]) = null 
val nodes:IndexedSeq[Int] = null 
foo(nodes) 

=>

error: type mismatch; 
found : IndexedSeq[Int] 
required: scala.collection.immutable.Seq[Int] 
      foo(nodes) 
       ^

In scala-libreria, IndexedSeq viene dichiarata:

trait IndexedSeq[+A] extends Seq[A]... 
+0

Oh. Perché ci sono diversi tratti di IndexedSeq. L'impostazione predefinita è scala.collection.IndexedSeq. se importo collection.immutable.IndexedSeq allora scala verrà compilato con successo –

+0

Pubblica come risposta per il beneficio di altri utenti :) – theon

risposta

3

ci sono diversi tratti IndexedSeq. L'impostazione predefinita è scala.collection.IndexedSeq. se si usa import collection.immutable.IndexedSeq allora scala si compilerà correttamente. (Copiato da OP)