斯卡拉.获取列表的第一个元素

为什么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.

相关文章

共收录Twitter的14款开源软件,第1页Twitter的Emoji表情 Tw...
Java和Scala中关于==的区别Java:==比较两个变量本身的值,即...
本篇内容主要讲解“Scala怎么使用”,感兴趣的朋友不妨来看看...
这篇文章主要介绍“Scala是一种什么语言”,在日常操作中,相...
这篇文章主要介绍“Scala Trait怎么使用”,在日常操作中,相...
这篇文章主要介绍“Scala类型检查与模式匹配怎么使用”,在日...