下面是我尝试使用尾递归编写的一个简单的“重复”方法。此函数的唯一目的是仅将给定字符串背靠背重复 'n' 次。
即重复("Hello",3) = "HelloHelloHello"
但无论出于何种原因,我都得到了一个“java.lang.UnsupportedOperationException”,我不知道为什么。
PS这是一个家庭作业,所以如果我能指出正确的方向而不是直接的答案,那就太酷了!
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)
}