Вы можете накопить шаблон, который foldLeft
,
final case class MyClass(name: String, values: Seq[String])
val data = List(MyClass("firstvar", List("one", "two", "three")),
MyClass("secondvar", List("23423", "234234")))
val res = data.zipWithIndex.foldLeft("") {
case (acc, (elem, 0)) =>
acc + elem.name + "_" + elem.values.mkString("-")
case (acc, (elem, _)) =>
acc + "_" + elem.name + "_" + elem.values.mkString("-")
}
// output - https://scastie.scala -lang.org / praagagupd / M48HqDp9SMqbCy1Q083Q8g / 4
firstvar_one-two-three_secondvar_23423-234234
Или просто используйте .map
с .mkString
.
scala> data.map { elem => elem.name + "_" + elem.values.mkString("-") }.mkString("_")
res5: String = firstvar_one-two-three_secondvar_23423-234234