【问题标题】:What type of expression is this in scala?这是scala中的什么类型的表达?
【发布时间】:2020-03-01 14:57:17
【问题描述】:

考虑到 x,p,r 是从前面的表达式中计算出来的,下面发生了什么,

val a = for{
 x <- y
 p = q (x)
 r <- s (p)
} yield (something(p.something, r.something))

【问题讨论】:

    标签: scala functional-programming for-comprehension


    【解决方案1】:

    &lt;- 等价于(语法糖).flatMap 调用,而= 等价于val x =(和yield 是一种最终的.map)。

    所以代码相当于:

    val a = y.flatMap { x => // first <-
      val p = q (x)
      s(p).map { r => // 2nd <- + yield
        something(p.something, r.something)
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2015-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-06
      • 1970-01-01
      • 2011-09-08
      • 1970-01-01
      相关资源
      最近更新 更多