У меня есть простая рекурсивная функция, чтобы преобразовать список булевых в строку:Scala: шаблон матч + конкатенация
def boolsToString(lst: List[Boolean]): String = lst match {
case Nil => ""
case x::xs => x match {
case false => "0" + boolsToString(xs)
case true => "1" + boolsToString(xs)
}
}
Это работает, но я не хотел повторения boolsToString. Я хотел бы сделать конкатенацию только один раз (после случая):
def boolsToString2(lst: List[Boolean]): String = lst match {
case Nil => ""
case x::xs => x match {
case false => "0"
case true => "1"
} + boolsToString2(xs)
}
, но это отвергается Scala компилятором: «„;“ ожидаемый, но идентификатор найден. "
Есть ли другой способ выполнения конкатенации строк только один раз, после случая?
Short + very elegant. Приятно, спасибо! –