Ниже приведен простой метод «повторения», который я пытаюсь написать с помощью хвостовой рекурсии. Единственная цель этой функции состоит в том, чтобы просто повторить заданную строку обратно назад «n» количество раз.Ошибка рекурсии скалы
I.e. repeat («Hello», 3) = «HelloHelloHello»
Но по какой-то причине я получаю «java.lang.UnsupportedOperationException», и я не уверен, почему.
P.S. Это домашнее задание, поэтому, если бы я мог просто указывать в правильном направлении, а не на прямой ответ, это было бы круто!
def repeat(s: String, n: Int): String = {
def tailRepeat(str: String, x: Int): String = x match {
case `n` => str
case _ => val repeatString = s + str
tailRepeat(repeatString, (x + 1))
}
tailRepeat(s, 0)
}
В какой строке вы выбрали исключение? Вы уверены, что это в этом коде? Кажется, он компилируется и выполняется (в основном) отлично для меня - просто ошибка «один за другим» ('repeat (« Hello », 3)« дает »HelloHelloHelloHello» для меня). – Shadowlands
Ya, Он выбрасывал эту ошибку на линии, где повторение в порядке. Но я только что вернулся к нему, и теперь он работает. Я действительно чувствую себя глупо, как сейчас, но я не знаю, что я сделал, чтобы заставить его работать. Поскольку я ничего не изменил. – Scalahansolo