Я столкнулся с ситуацией, когда у меня есть некоторое целочисленное значение в константе и умножение его на math.Pi константа, как показано ниже:
func main() {
const a = 5
fmt.Printf("%v", a*math.Pi)
}
Вкл.выполнение дает следующий результат:
15.707963267948966
Но, когда я изменяю постоянную на переменную (variable a
) , как показано ниже:
func main() {
a := 5
fmt.Printf("%v", a*math.Pi)
}
При компиляциивыдает следующую ошибку:
constant 3.14159 truncated to integer
Насколько я понимаю, неявное преобразование числового типа работает, когда все операнды выражения являются константами, но не работает, когда какой-либо из них является переменной.
Но почему это происходит?