我想创建Scala中的一个队列中创建队列:做斯卡拉
import scala.collection.immutable.Queue
val empty = new Queue[Int]
但是我得到一个错误,指出队列构造函数是受保护的。如果是这种情况,我错过了什么?所有的Queue方法似乎都已经定义和工作。我是否真的必须真正扩展Queue类才能使用Queue?
我想创建Scala中的一个队列中创建队列:做斯卡拉
import scala.collection.immutable.Queue
val empty = new Queue[Int]
但是我得到一个错误,指出队列构造函数是受保护的。如果是这种情况,我错过了什么?所有的Queue方法似乎都已经定义和工作。我是否真的必须真正扩展Queue类才能使用Queue?
空队列使用伴侣对象:
val empty = Queue.empty[Int]
使用的工厂之一:
scala.collection.immutable.Queue()
scala.collection.immutable.Queue.empty
需要注意的是不可变的队列共变的,所以你通常不需要定义键入它。一个例外是var
声明。
scala> val empty = Queue [Int]()
empty: scala.collection.immutable.Queue[Int] = Queue()
啊,谢谢。希望这个答案会出现在谷歌的文章中使用'new' .. – providence
或'Queue [Int]()'。如果表达式的上下文(更确切地说,* Expected Type *)使编译器清楚您正在收集'Int'集合后,则可以省略type参数'val x:Queue [Int] = Queue()'。 – retronym
@retronym它正在使用由于受保护的构造函数而不工作的Queue [Int]()。使用Scala 2.9.1.final。 – providence