为什么queue.get()返回empy列表?
class MyQueue{ var queue=List[Int](3,5,7) def get(){ this.queue.head } } object QueueOperator { def main(args: Array[String]) { val queue=new MyQueue println(queue.get()) } }
我如何获得第一个元素?
解决方法
它没有返回空列表,它返回Unit(零元组),这是Scala在Java中相当于void.如果它返回空列表,您将看到List()打印到控制台而不是()(nullary tuple).
问题是您使用get方法错误的语法.您需要使用= =来表示get返回值:
def get() = { this.queue.head }
或者这可能更好:
def get = this.queue.head
在Scala中,通常,对于没有副作用的空值函数,通常不要使用括号(参数列表),但是这也要求您在调用queue.get时关闭括号.
您可能想要快速浏览Scala Style Guide,特别是section on methods.