[英]Is it possible to pattern-match an Iterator in Scala?
是否可以对 Scala 中的迭代器进行模式匹配? 下面的iter和s似乎只是Any
,但我需要输入它们,以调用循环方法或无论如何处理它们。 (我猜这可能与类型擦除有关,但是......)
def loop(iterator: Iterator[Any], acc: String): String = {
iterator.next() match {
case Iterator @ iter => loop(iter, acc)?????? can I match type of element here?
case String @ s => s ?????? can I match type of element here?
}
}
要匹配值的类型,请编写
case iter: Iterator[_] => ...
case s: String => ...
你写的
case Iterator @ iter
仅当值为object Iterator
时才会匹配,它是trait Iterator
Iterator 的伴侣 object 。
出现语法错误
case iter: Iterator[Any] => loop(iter, acc)
case s: String => s
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.