微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐