我有很多功能
val f1 = (x: Int) => x + 1
val f2 = (x: Int) => x + 2
val f3 = (x: Int) => x + 3
我有一个值:
val data = 5
我想将所有函数应用于该值并返回单个值。所以
f3(f2(f1(data)))
并且必须返回11。
现在,如果我有一系列函数:
val funcs = Seq(f1, f2, f3)
我怎样才能得到11
从应用所有功能到data
多变的 ?做到这一点的scala方法是什么?
您正在寻找的是foldLeft
。事实上,对于每个函数,您都将其应用于之前的结果:
funcs.foldLeft(data){ (previousres, f) => f(previousres) }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)