private val replacements = Map("&" -> "&", """"""" -> """, "<" -> "<", ">" -> ">", "'" -> " '")
def escape(str: String): String = {
str.map(c => replacements.getOrElse(c.toString, c)).mkString
}
case class Table(length: Int, prop: String)
case class User (name: String, age: Int, posts: List[String], ex: List[Table])
val user = User("""this & that gonna be < or > so ' all " has to be changed""", 25, List("Lorem$", "Ipsum$"), List(Table(12, "smthin'g")))
хочет скопировать новый экземпляр User с примененной escape-функцией во все строковые значения, существуют разные классы case, к которым необходимо применить эти функции, case case может иметь 10-20 строковых значений