是否可以在 Scala 中对迭代器进行模式匹配?

Is it possible to pattern-match an Iterator in Scala?

是否可以在 Scala 中对迭代器进行模式匹配? 下面的 iters 似乎只是 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 的伴生对象。

语法错误

case iter: Iterator[Any] => loop(iter, acc)
case s: String => s