Метод использует рекурсию для повышения указанной c базы до определенной степени.
Давайте возьмем простой пример 2 ^ 2 и прогоняем код:
raiseToPower(2, 2)
вызывается
resultVal = 2 * raiseToPower(2, 2 - 1)
выполняется
raiseToPower(2, 1)
вызывается
resultVal = 2 * raiseToPower(2, 1 - 1)
выполняется
raiseToPower(2, 0)
вызывается
Базовый случай достигнут, и мы возвращаем 1
Теперь мы go создаем резервную копию цепочки!
resultVal = 2 * 1
и возвращается 2
resultVal = 2 * 2
и 4 возвращается
Таким образом, конечный результат для 2 ^ 2 равен 4.
Другой способ подумать об этом - предположить, что кто-то уже дал вам ответ на 2 ^ 2, Вы можете использовать это для вычисления 2 ^ 3? Да, вы можете просто сделать 2 * 2 ^ 2!
Итак: raisePower(2,3) = 2 * raisePower(2,2)
Важно также иметь базовый случай (когда мощность равна 0, как в вашем примере выше) чтобы не нарваться на бесконечный l oop! Надеюсь, это поможет.