Разные типы в одной операции в Go
В одном действии оба числа должны быть одного типа. Компилятор сам никого не расширяет. Целое и дробное рядом не собираются:
var num1 int = 5
var num2 float64 = 2.0
fmt.Println(num1 + num2) // программа не собирается
Узкое и обычное целое тоже разные типы.
Сумма int8 и int не собирается,
пока их не приведут к одному типу.
То же у float32 и float64.
Если оба числа int, действие проходит.
Деление при этом остается целым:
var num1 int = 5
var num2 int = 2
fmt.Println(num1 / num2) // выведет 2
Дан следующий код:
var num1 int = 5
var num2 float64 = 2.0
var sum = num1 + num2
Скажите, соберется ли эта программа.
Скажите, можно ли сложить две переменные
типа int16 без преобразования.