scala - 可以在scala中使用一会儿循环并产生 yield

标签 scala yield

这是scala中for / yield的标准格式:请注意,它需要一个集合-其元素驱动迭代。

for (blah <- blahs) yield someThingDependentOnBlah


我有一个无限的迭代次数将在循环中发生的情况。内部循环逻辑确定将执行多少次。

while (condition) { some logic that affects the triggering condition } yield blah


每次迭代都会生成序列的一个元素-就像要编写一个yield一样。推荐的方法是什么?

最佳答案

您可以

Iterator.continually{ some logic; blah }.takeWhile(condition)


得到几乎相同的东西。您需要使用一些可变的(例如var)逻辑来影响条件。否则你可以

Iterator.iterate((blah, whatever)){ case (_,w) => (blah, some logic on w) }.
         takeWhile(condition on _._2).
         map(_._1)

关于scala - 可以在scala中使用一会儿循环并产生 yield ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26558120/

相关文章:

scala - 我怎样才能以更像英语的方式使用 Scala 代码?

java - 集合中 Scala.Long 和 Java.lang.Long 之间的隐式转换

asynchronous - flutter 和 bloc 异步yield

python - 带有 finally 子句的 try block 中不允许使用 python 2.4 的 yield 的解决方法

javascript - Meteor JS Iron Router 良率故障排除

python - "yield item"与 return iter(items) 相比有什么优势?

scala - 我可以使用 SELECT from dataframe 而不是创建此临时表吗?

java - 我可以为某些 Actor 的自动名称添加前缀吗?

scala - Dart 中优雅的错误处理,如 Scala 的 `Try`

javascript - 使用 yield 作为异步控制流有什么好处?