May a while loop be used with yield in scala

前端 未结 3 857
梦毁少年i
梦毁少年i 2021-02-04 06:22

Here is the standard format for a for/yield in scala: notice it expects a collection - whose elements drive the iteration.

for (blah <- blahs) yield someThi         


        
3条回答
  •  情歌与酒
    2021-02-04 06:54

    You can

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

    to get pretty much the same thing. You'll need to use something mutable (e.g. a var) for the logic to impact the condition. Otherwise you can

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

提交回复
热议问题