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