Получить размер Regex.MatchIterator в Scala 2.7.7? - PullRequest
2 голосов
/ 28 августа 2011

Какой самый элегантный способ получить размер Regex.MatchIterator в Scala 2.7.7?

Я пробовал следующее:

¤ scala
Welcome to Scala version 2.7.7final (OpenJDK 64-Bit Server VM, Java 1.6.0_20).
Type in expressions to have them evaluated.
Type :help for more information.

scala> "a".r.findAllIn("a").size  
<console>:5: error: value size is not a member of scala.util.matching.Regex.MatchIterator
       "a".r.findAllIn("a").size
                            ^

scala> "a".r.findAllIn("a").size()
<console>:5: error: value size is not a member of scala.util.matching.Regex.MatchIterator
       "a".r.findAllIn("a").size()
                            ^

1 Ответ

3 голосов
/ 28 августа 2011

Вы можете конвертировать итератор:

iter.toList.size

Обязательно сохраните преобразованный итератор (если вы хотите получить доступ к данным после вычисления размера), поскольку он может повторяться только один раз.

Вместо преобразования в другую коллекцию вы также можете использовать foldLeft:

(0 /: iter) { case (sum, _) => sum+1 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...