我认为了解这些类型的方法如何工作的最佳方法是通过一个简单的示例手动完成它们。让我们拿字符串来"abc"
考虑当我们调用时会发生什么
reverseString("abc")
在第一次迭代中,我们考虑else
块(因为"abc".length()
不小于或等于 1)。方法返回
reverseString("abc".substring(1)) + "abc".charAt(0)
这相当于
reverseString("bc") + 'a'
现在我们必须考虑reverseString("bc")
。再次,我们发现自己在else
块中,该方法将返回
reverseString("bc".substring(1)) + "bc".charAt(0)
这相当于
reverseString("c") + 'b'
显然,正如预期的那样, reverseString("c")
is just "c"
- so reverseString("bc")
is "cb"
which 是指这reverseString("abc")
就是"cb" + 'a'
给我们的。"cba"
总而言之,我们基本上是在做这样的事情:
reverse("abc")
reverse("bc") + 'a'
reverse("c") + 'b' + 'a'
"cba"
使用 4 个字符的字符串:
reverse("abcd")
reverse("bcd") + 'a'
reverse("cd") + 'b' + 'a'
reverse("d") + 'c' + 'b' + 'a'
"dcba"