2011-10-02 19 views
7

Estoy tratando de crear una cola en Scala haciendo:Creación de una cola en la Scala

import scala.collection.immutable.Queue 

val empty = new Queue[Int] 

Sin embargo estoy recibiendo un error que indica que el constructor cola está protegida. Si este es el caso, ¿me estoy perdiendo algo? Todos los métodos de cola parecen estar definidos y funcionando. ¿Debo realmente extender la clase Queue sin ningún motivo solo para usar una cola?

Respuesta

15

Para uso cola vacía objeto acompañante:

val empty = Queue.empty[Int] 
+0

Ahh thanks. Esperemos que esta respuesta salga por encima de los artículos que dicen usar 'new' en google ... – providence

+1

o' Queue [Int]() '. Si el contexto de la expresión (más precisamente, el * Tipo esperado *) le deja claro al compilador que está buscando una colección de 'Int's, puede omitir el parámetro de tipo, p. 'val x: Queue [Int] = Queue()'. – retronym

+0

@retronym Está utilizando Queue [Int]() que no funcionaba debido al constructor protegido. Usando Scala 2.9.1.final. – providence

3

Utilice una de las fábricas:

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

Tenga en cuenta que las colas son inmutables co-variante, por lo que normalmente no es necesario definir una escribe para eso. Una excepción serían las declaraciones var.

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