小编use*_*218的帖子

scala - 未初始化的变量声明

我的一个scala类中有一个变量,其值仅在调用特定方法时第一次设置.方法参数值将是字段的初始值.所以我有这个:

classX {
  private var value: Int= _
  private var initialised = false

  def f(param: Int) {
    if (!initialised){
      value = param
      initialised = true
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

是否有更像scala的方式来做到这一点?选项似乎有点太麻烦......

scala

6
推荐指数
1
解决办法
9114
查看次数

Scala - Iterator.toList的奇怪行为

我是Scala的新手,我的功能如下:

def selectSame(messages: BufferedIterator[Int]) = {
  val head = messages.head
  messages.takeWhile(_ == head)
}
Run Code Online (Sandbox Code Playgroud)

这是从缓冲迭代器中选择只匹配头部的元素.我随后使用此代码:

val messageStream = List(1,1,1,2,2,3,3)
if (!messageStream.isEmpty) {
  var lastTimeStamp = messageStream.head.timestamp
  while (!messageStream.isEmpty) {
    val messages = selectSame(messageStream).toList
    println(messages)
}
Run Code Online (Sandbox Code Playgroud)

在第一次执行时,我按预期得到(1,1,1),但后来我只得到了List(2),好像我丢失了一行元素...可能我对迭代器/列表做错了,但我在这里有点迷失.

iterator scala

2
推荐指数
1
解决办法
186
查看次数

标签 统计

scala ×2

iterator ×1