是否可以在 Scala 中对迭代器进行模式匹配?
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
的伴生对象。
语法错误
case iter: Iterator[Any] => loop(iter, acc)
case s: String => s
是否可以在 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
的伴生对象。
语法错误
case iter: Iterator[Any] => loop(iter, acc)
case s: String => s