Я написал следующую функцию, основанную на сопоставлении с образцом:
def replacingElem(lines: List[String], last10: String): List[String] =
{
if (lines.isEmpty) Nil else {
val row = lines.head.split("[ \t]+")
row(0).toInt match {
case 10 => lines.head :: replacingElem(lines.tail, row(1))
case 15 => (row(0) + " " + last10 + " " + row(2) + " " + row(3)) :: replacingElem(lines.tail, last10)
case _ => lines.head :: replacingElem(lines.tail, last10)
}
}
}
Моя цель сделать настраиваемые целые числа 10 и 15 и сделать их аргументами функции. Я сделал следующие модификации:
def replaceIndex(lines: List[String], last10: String,a:Int,b:Int): List[String] = {
if (lines.isEmpty) Nil else {
val row = lines.head.split("[ \t]+")
row(0).toInt match {
case a => lines.head :: replaceIndex(lines.tail, row(1),a,b)
case b => (row(0) + " " + last10 + " " + row(2) + " " + row(3)) :: replaceIndex(lines.tail, last10,a,b)
case _ => lines.head :: replaceIndex(lines.tail, last10,a,b)
}
}
}
Но я получил ошибки компиляции.