scala - 将项目添加到新的字符串列表

标签 scala scala-2.10

我有一个带有输入参数的函数:数字和字符串列表,例如:(1, ListString)

我需要它返回一个新的字符串列表,如下所示:

[["1","name1"], ["1","name2"]]

对于输入字符串列表中的每个字符串,我需要将其放置在该结构中,因此我构建了以下内容:

def buildStringForproductsByCatView(tenantId:String, cat:List[String]):List[String]=
{
  var tempList= List[String]()//(cat.foreach(x => "[[\"1\",\""+x+"\"]]"))
  cat.foreach(x => println(("[[\"1\",\""+x+"\"]]")))
  cat.foreach(x => tempList + ("[[\"1\",\""+x+"\"]]"))
  println(tempList.mkString(","))
  tempList
}

列表没有填满项目,我尝试了多种方法,但无法获取它。

打印线工作正常,我得到这个:

[["1","1"]]
[["1","cat1"]]

我只想将它们添加到新的字符串列表中..

最佳答案

您的代码中有两处错误。

第一个,要将项目附加到列表,您应该使用 :++ 不是您要寻找的内容。 tempList + "asd" 隐式将列表转换为字符串并将文本附加到该字符串。这可能会令人困惑。

第二个 List 是不可变的,因此每个 :+ 调用都会返回一个新的 List。

所以你的代码应该是这样的:

x => tempList = tempList :+ ("[[\"1\",\""+x+"\"]]")

关于scala - 将项目添加到新的字符串列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22663672/

相关文章:

java - 将大型应用程序从 JavaEE 迁移到 Akka

Scala 从 future 中提取结果

Scala 错误 : class file is broken, 错误的常量池索引

scala - 斯卡拉(Scala)。具有一个字段的案例类可以是值类吗?

Scala 2.10 编译器在第一次使用 SBT 后需要 10 倍的时间

arrays - Scala Array.apply 的魔力是什么

scala - 将光滑的查询组合成单个查询

Scala/Dotty - 将特征混合到现有对象中

scala - 解压缩存储在 Azure ADLS Gen2 中的 .Z 文件

scala - 在运行时传递类型信息