什么< - 表示scala与yeild?

时间:2016-06-23 10:11:11

标签: scala operators

我对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左箭头操作符 并没有说明这一点。你不能解释一下吗?

1 个答案:

答案 0 :(得分:1)

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理解来轻松找到这一点。