我刚刚开始使用 Scala,因此开始以更实用的方式做事。
只是想知道是否有一种更实用的方法来实现如下所示的功能:
def expand(exp: String): String = {
var result = exp
for ((k,v) <- libMap) {result = result.replace(k, "(%s)".format(v))}
result
}
或者一般来说,给定一个字符串和一些可迭代的集合,遍历该集合并对每个元素增量修改输入字符串。
Cheers
一般都是这样的图案
var result = init
for (foo <- bar) { result = f(result, foo)}
result
可以用函数表示为
bar.foldLeft(init)(f)
所以对于你的情况,这变成了:
libMap.foldLeft(exp){ case(result, (k,v)) => result.replace(k, "(%s)".format(v))}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)