【问题标题】:What does <- mean in scala with yeild? [duplicate]<- 在 scala 中是什么意思? [复制]
【发布时间】:2016-10-25 14:40:16
【问题描述】:

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

【问题讨论】:

标签: scala operators


【解决方案1】:
for {
    p1 <- getList()
    p2 <- parser.parse(p1)
  } yield p2

相当于(伪代码,未测试):

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

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

【讨论】:

  • 这是很多伪代码,实际上只是getList().flatMap(parser.parse)
  • 我知道@Peter。我试图以 OO 的方式来演示它。
猜你喜欢
  • 2012-02-07
  • 2015-04-23
  • 2017-04-05
  • 1970-01-01
  • 2023-03-27
  • 2021-11-07
  • 1970-01-01
  • 2020-10-27
  • 2015-07-15
相关资源
最近更新 更多