Введение в преобразование типов в Go
В Go разные числовые типы сами друг в друга не переходят. Деление двух целых отбрасывает дробь, как в прошлом разделе. Преобразование типа как раз возвращает дробный ответ.
Перед числом пишут имя нового типа и берут число в скобки. Без перевода деление остается целым. Оба целых переводят, и частное становится дробным:
var num1 = 5
var num2 = 2
fmt.Println(num1 / num2) // выведет 2
fmt.Println(float64(num1) / float64(num2)) // выведет 2.5
Сами переменные num1 и num2
остаются int. Дробным стало только
число внутри деления.
Дальше разберем, почему разные типы в одном действии не собираются, запись преобразования, отбрасывание дроби, сужение к узкому целому и шаг за край диапазона.