当我调试时,它显示“$Stream$Empty”。但它不属于 .isEmpty 案例。我将模式更改为“head #::tail”,它在某些测试用例中运行良好。谁能解释幕后发生的事情?
问问题
435 次
1 回答
0
这有帮助吗?isEmpty 效果很好。
val strm = true #:: false #:: Stream[Boolean]()
def matchStream[T](stream:Stream[T]):List[String] = {
stream match {
case head #:: tail => head.toString :: matchStream(tail)
case stm if stm.isEmpty => List("end of stream")
}
}
matchStream(strm)
我在工作表中运行了这个并得到了
res0: List[String] = List(true, false, end of stream)
于 2017-03-21T15:48:44.253 回答