我遇到了andThen
,但没有正确理解它。
为了进一步了解它,我阅读了Function1.andThen文档
def andThen[A](g: (R) ⇒ A): (T1) ⇒ A
mm
是MultiMap实例。scala> mm
res29: scala.collection.mutable.HashMap[Int,scala.collection.mutable.Set[String]] with scala.collection.mutable.MultiMap[Int,String] =
Map(2 -> Set(b) , 1 -> Set(c, a))
scala> mm.keys.toList.sortWith(_ < _).map(mm.andThen(_.toList))
res26: List[List[String]] = List(List(c, a), List(b))
scala> mm.keys.toList.sortWith(_ < _).map(x => mm.apply(x).toList)
res27: List[List[String]] = List(List(c, a), List(b))
注意-DSLs in Action中的代码
andThen
功能强大吗?根据此示例,它看起来像mm.andThen
脱糖到x => mm.apply(x)
。如果andThen
的含义更深,则我还不了解。 最佳答案
andThen
只是函数组成。给定一个函数f
val f: String => Int = s => s.length
andThen
创建一个新函数,该函数先应用f
,再应用参数函数val g: Int => Int = i => i * 2
val h = f.andThen(g)
h(x)
然后是g(f(x))
关于scala - 了解 `andThen`,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20292439/