繁体   English   中英

是否可以对 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 Iterator 的伴侣 object 。

出现语法错误

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM