2014-06-22 56 views

回答

4

这是一个extractor for pattern matching streams。这对列表无效。该列表有::(请注意列表中没有#)。

case x #:: xs =>的含义是当模式匹配时,x将包含流的头部,而xs将包含流(尾)的其余部分。

有关如何定义流的示例,请查看stream documentation

+0

是否相当于x :: xs for List? – Donbeo

+1

@Donbeo是的,列表中的x :: xs相当于模式匹配中的流中的x#:: xs。你也可以选择[Extractor Objects](http://docs.scala-lang.org/tutorials/tour/extractor-objects.html)。 – lpiepiora

+0

好的。我的理解是Stream只在被调用时才被评估。在这种情况下,评估流的第一个和第二个元素? (为了检查模式匹配) – Donbeo