При преобразовании float64 в int32 дробная часть отбрасывается. Если целая часть не представима, результат зависит от реализации; полагаться на wraparound или конкретное число нельзя.
Функция math.Pow возвращает float64, мы явно указываем int32 и пытаемся вместить большое число — что произойдёт?
При преобразовании float64 в int32 дробная часть отбрасывается. Если целая часть не представима, результат зависит от реализации; полагаться на wraparound или конкретное число нельзя.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
При преобразовании float64 в int32 дробная часть отбрасывается. Если целая часть не представима, результат зависит от реализации; полагаться на wraparound или конкретное число нельзя.
Сначала проверьте NaN, бесконечность и допустимый диапазон усечённого значения. Runtime-преобразование обычно не вызывает автоматическую panic только из-за выхода за диапазон, но это не делает результат полезным. С константой, которую компилятор сразу не может представить в int32, ситуация другая — ошибка компиляции. Для точной целочисленной степени лучше использовать целочисленный алгоритм с проверкой переполнения.