gpt4 book ai didi

arrays - 如何在 Scala 中为数组中的每个元素附加一个字母

转载 作者:行者123 更新时间:2023-12-02 06:52:16 25 4
gpt4 key购买 nike

我有一个字符串数组:

  var z:Array[String] =Array("hand", "ball", "eye")

我想为 z 中的每个元素附加一个“s”,

我是 scala 的新手,我可以通过附加 's' 来打印它们:

 z.foreach(arg =>println(arg +"s"))

但我正在寻找的实际上是将 z 中的所有元素更改为具有“s”。

最佳答案

取决于您所说的“更改 z 中的所有元素”是什么意思。数组是可变容器,因此理论上您可以就地更改数据,尽管这并不是真正的“scala 方式”,而且通常不是一个好主意:

z.indices.foreach(z(_)+="s")

更好的方法,更惯用和安全的方法是使用 map ,如其他答案中所述:

val newZ = z.map(_ + "s")

这将使用修改后的元素创建数组的副本,而原始元素保持不变。如果您的阵列非常大,这可能会变得令人望而却步,因为它需要将所有数据复制到一个新容器中。对于这种情况,最好使用迭代器,并将您的操作链接到一个序列中,这样只有最终结果才会具体化。例如:

val processedData = z.iterator
.map(_ + "s")
.filter(_.startsWith("foo"))
.map(_.substring(3))
.toArray

这对数组的内容执行了三个操作,但避免了在每个操作之后创建中间副本。

关于arrays - 如何在 Scala 中为数组中的每个元素附加一个字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40399871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com