Хотя Go строг по преобразованию между переменными разных числовых типов, константы в языке гораздо более гибкие. Литеральные константы, такие как 23
, 3.14159
и math.Pi
занимают своего рода идеальное числовое пространство с произвольной точностью и нет переполнения или ненаполнения. Например, значение math.Pi
указано в 63 местах в исходном коде, а константные выражения, включающие значение, сохраняют точность выше того, что может хранить float64
. Только когда константа или константное выражение присваиваются переменной - области памяти в программе - она становится «компьютерным» числом с обычными свойствами, с плавающей точкой и точностью.
Также, поскольку они являются просто числами, а не типизированными значениями, константы в Go могут быть использованы более свободно, чем переменные, тем самым смягчая некоторые неловкости вокруг строгих правил конверсии. Можно написать такие выражения, как:
sqrt2 := math.Sqrt(2)
без претензий от компилятора, потому что идеальное число 2
может быть преобразовано безопасно и точно в float64
для вызова math.Sqrt
.
Читайте также:
Комментариев нет:
Отправить комментарий