如何在foreach循环中修改变量?

基督教圣

我有Map以下示例内容:

var replacements: Map[String, String] = Map("a" -> "1", "b" -> "2", "c" -> "3")

和以下方法:

def censor(text: String, replacements: Map[String, String]): String = {
  replacements.keys.foreach(key => text = text.replace(key, replacements(key)))
  return text
}

该方法应将中key找到的所有替换为在中text分配的值replacements

问题是循环text = text.replace(key, replacements(key))内的命令foreach

所以我的问题是:如何textforeach循环修改变量

卡斯滕·萨索夫(Carsten Saathoff)

foreach实际上不是实现所需目标的正确工具。它不起作用的原因是方法参数不是变量,而是scala中的不可变值。您可以使用var,但这不是Scala中的首选方式。取而代之的是,您可以折叠替换项,并以原始文本作为起始值:

def censor(text: String, replacements: Map[String, String]): String = {
  replacements.foldLeft(text){ case (text, (key, replacement)) => text.replace(key, replacement)}
}

或更短的版本:

def censor(text: String, replacements: Map[String, String]): String = {
  replacements.foldLeft(text)((t, r) => t.replace(r._1, r._2))
}

为了解释,如果你不熟悉,fold准确的集合迭代,建设或你去更新的累计值的功能格局。它需要一个初始值和一个从上一个值和当前项目到下一个值的函数,然后返回最终值。leftright变化只是指无论你是折叠的序列向后或向前,这可能有所作为在性能和效果方面,这取决于你的数据结构和传递函数的性质。

另请参阅:http : //www.scala-lang.org/api/2.11.1/index.html#scala.collection.Seq

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在forEach循环中传递变量函数

来自分类Dev

Javascript在foreach循环中更改变量名称

来自分类Dev

如何在R循环中修改i?

来自分类Dev

如何使这些变量在foreach循环中动态

来自分类Dev

在foreach循环中修改集合

来自分类Dev

如何在for循环中每次强制Async完成并修改全局变量?

来自分类Dev

如何在嵌套的foreach循环中求和?

来自分类Dev

如何在foreach循环中跳过空格?

来自分类Dev

如何在foreach循环中创建数组?

来自分类Dev

如何在.forEach循环中模拟“中断”?

来自分类Dev

如何在循环中改变容器中的元素?

来自分类Dev

如何在ngFor循环中创建变量?

来自分类Dev

如何在Java循环中重置变量?

来自分类Dev

如何在for循环中捕获嵌套变量?

来自分类Dev

如何在循环中制作变量表?

来自分类Dev

如何在每个循环中添加变量

来自分类Dev

如何在foreach循环中设置变量以在PHP中进行外部访问?

来自分类Dev

如何在foreach循环中为char变量分配值?C#

来自分类Dev

如何在 foreach 循环中使用对象并替换变量 (OOP)?

来自分类Dev

如何修改在循环中使用自身的 Cow 变量?

来自分类Dev

Bash:如何在命令上调用或修改变量的内容?

来自分类Dev

在 shell 脚本循环中更改变量

来自分类Dev

foreach循环中的javascript变量

来自分类Dev

如何在for循环中修改对象?反应本机

来自分类Dev

在forEach循环中修改对象属性

来自分类Dev

在foreach循环中修改Dictionary的内容

来自分类Dev

在PHP中的foreach循环中修改XML

来自分类Dev

在 foreach 循环中修改了集合

来自分类Dev

如何在Python的循环中更改for循环迭代器变量?

Related 相关文章

热门标签

归档