在带有收益率的Scala中,< -是什么意思?[复制]

eni9jsuy  于 2022-11-09  发布在  Scala
关注(0)|答案(1)|浏览(139)

这个问题在这里已经有答案

What is Scala's yield?(10个答案)
六年前就关门了。
我是Scala的新手,我想出了以下结构:

val value=
  for {
    p1 <- getList()
    p2 <- parser.parse(p1)  //parser.parse(String) Returns some useful value
  } yield p2
value.asJava

哪里

def getList(): List[String] = {
   //compiled code
}

我不太明白第一段代码中发生了什么。搜索Scala左箭头操作符并没有揭示这一点。你不能解释一下吗?

thtygnil

thtygnil1#

for {
    p1 <- getList()
    p2 <- parser.parse(p1)
  } yield p2

等同于(psudocode,未测试):

var result: List = Nil
val value = {
    foreach(p1 in getList()){
     foreach(p2 in parser.parse(p1)){
      result ::: p2
     }
    }
    result
   }

但正如其他人所说,通过阅读Scala的for理解,您可以很容易地找到这一点。

相关问题