Scala:如何制作多种方法并逐一应用?
我有一个清单: List("1", "2", "3")
List("1", "2", "3")
以及一种方法:
def concat(str: String)(tail: String): String = str + tail
我的目标是制作三种(想象的)方法:
concat(str: String)("1") concat(str: String)("2") concat(str: String)("3")
然后将这三种方法逐一应用于测试字符串“abc”: 然后我会得到结果: "abc123"
"abc123"
执行此操作的功能方式是什么?如有任何提示,我们将不胜感激。
你不需要三种不同的方法。仅使用 fold 遍历列表并应用 concat 方法依次为:
fold
concat
val list = List("1", "2", "3") def concat(str: String)(tail: String): String = str + tail list.fold( "abc" )( concat(_)(_) ) // res1: String = abc123
请注意 fold( "abc" )( concat(_)(_) ) 只是以下内容的快捷方式:
fold( "abc" )( concat(_)(_) )
fold( "abc" )( (acc, x) => concat(acc)(x) )
如果你不熟悉 折叠 ,这是 API doc
折叠