Rog*_*ach 7 scala unsupportedoperation
我有很多数字.我需要对它们应用一些操作,然后只获取满足某些条件的结果.列表是顺序的,所以一旦我找到不满足条件的数字,我就可以停止查找.
我想避免做太多的计算,所以我在这个例子中继续前进:
List(1,2,3,4,5).view.map(2 *).takeWhile(_ < 8)
Run Code Online (Sandbox Code Playgroud)
但它给了我一个例外:
java.lang.UnsupportedOperationException: SeqViewM(...).newBuilder
at scala.collection.TraversableViewLike$class.newBuilder(TraversableViewLike.scala:69)
at scala.collection.SeqViewLike$$anon$3.newBuilder(SeqViewLike.scala:77)
at scala.collection.IterableLike$class.takeWhile(IterableLike.scala:139)
at scala.collection.SeqViewLike$$anon$3.takeWhile(SeqViewLike.scala:77)
at scala.collection.SeqViewLike$$anon$3.takeWhile(SeqViewLike.scala:77)
Run Code Online (Sandbox Code Playgroud)
使用Scala 2.9.0.1(与2.9.1相同的行为).这有什么不对?
看起来像个bug.(如果尚未报告和/或修复错误报告,请提交错误报告!)
在此期间,您可以使用迭代器作为此特定代码的变通方法:
List(1,2,3,4,5).iterator.map(2 *).takeWhile(8 >).toList
Run Code Online (Sandbox Code Playgroud)
(.toList如果你很高兴最终得到迭代器,请放弃).
| 归档时间: |
|
| 查看次数: |
104 次 |
| 最近记录: |