среда, 13 февраля 2019 г.

Go FAQ: Как работают константы в Go?

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

Также, поскольку они являются просто числами, а не типизированными значениями, константы в Go могут быть использованы более свободно, чем переменные, тем самым смягчая некоторые неловкости вокруг строгих правил конверсии. Можно написать такие выражения, как:

sqrt2 := math.Sqrt(2)

без претензий от компилятора, потому что идеальное число 2 может быть преобразовано безопасно и точно в float64 для вызова math.Sqrt.


Читайте также:


Комментариев нет:

Отправить комментарий