2011-10-02 10 views
7

Sto cercando di creare una coda in Scala facendo:Creazione di una coda a Scala

import scala.collection.immutable.Queue 

val empty = new Queue[Int] 

Comunque sto ottenendo un errore che indica che il costruttore della coda è protetto. Se questo è il caso, mi manca qualcosa? Tutti i metodi Queue sembrano essere definiti e funzionanti. Devo davvero estendere la classe Queue senza motivo solo per usare una coda?

risposta

15

Per uso coda vuota oggetto associato:

val empty = Queue.empty[Int] 
+0

Ahh grazie. Speriamo che questa risposta venga sopra agli articoli che dicono di usare 'new' in google .. – providence

+1

o' Queue [Int]() '. Se il contesto dell'espressione (più precisamente, * Expected Type *) rende chiaro al compilatore che stai cercando una collezione di 'Int's, puoi omettere il parametro type, ad es. 'val x: Queue [Int] = Queue()'. – retronym

+0

@retronym Si sta utilizzando la coda [Int]() che non funzionava a causa del costruttore protetto. Utilizzando Scala 2.9.1.final. – providence

3

Utilizzare una delle fabbriche:

scala.collection.immutable.Queue() 
scala.collection.immutable.Queue.empty 

Si noti che le code immutabili sono co-variante, in modo che di solito non è necessario definire un scrivi per questo Un'eccezione sarebbe var dichiarazioni.

0
scala> val empty = Queue [Int]() 
empty: scala.collection.immutable.Queue[Int] = Queue() 
Problemi correlati