Scala ifNotPresent 简洁形式

Scala ifNotPresent concise form

我有以下合集:

private val commandChain: mutable.Buffer[mutable.Buffer[Long]] = ArrayBuffer()

我需要做以下事情:

def :->(command: Long) = {
  commandChain.headOption match {
    case Some(node) => node += command
    case None => commandChain += ArrayBuffer(command)
  }
}

有比模式匹配更简洁的形式吗?

您可以使用简单的 if...else 语句。没有模式匹配,也没有 Option 展开。

def :->(command: Long): Unit = 
  if (commandChain.isEmpty) commandChain += ArrayBuffer(command)
  else                      commandChain.head += command

顺便说一句,与大多数惯用的(即 "good")Scala 相比,这是更加可变的数据结构和副作用。