Константы в Go

Содержание
Введение
Объявление
Автоматическое присвоение типа
iota

Введение

Значения констант должны быть определены до компиляции.
br> Присвоить константе значение, возвращаемое функцией нельзя, так как во время компиляции оно ещё не известно.

Константе нужно присвоить значение прямо во время объявления. (Похоже на 2)

Перед чтением этой статьи желательно прочитать:

Объявление константы

Пример

package main import ( "fmt" "reflect" ) func main() { const pi = 3.1415 fmt.Println(pi) }

go run github/youraccoutn/projectname

3.1415

Автоматическое присвоение типа

Если не указывать тип при объявлении, можно использовать одну константу с разными типами.

package main import ( "fmt" ) func main() { const с = 5 fmt.Println(с) fmt.Println(с + 4) fmt.Println(с + 0.5) }

go run github/youraccoutn/projectname

5 9 5.5

Сначала Go определил константу c как int, затем как float

Если явно задать тип константы как int будет ошибка

const с int = 5

./main.go:15:17: constant 0.5 truncated to integer

Избавиться от ошибки можно заранее конвертировав константу

fmt.Println(float32(с) + 0.5)

iota

Константам можно присваивать последовательные целочисленные значения с помощью iota

package main import ( "fmt" ) const ( a = iota // 0 b = iota // 0 + 1 = 1 c = iota // 1 + 1 = 2 six = iota + 3 // 2 + 1 + 3 = 6 // Побитовый сдвиг sixteen = 1 << iota // 1 * 2 * 2 * 2 * 2 // Автоматическое присвоение значений x = iota + 20 // 4 + 1 + 20 = 25 y // 25 + 1 = 26 z // 26 + 1 = 27 ) // В новом блоке const iota сбрасывается в ноль const ( zero = iota one two ) func main() { const с = 5 fmt.Println(a, b, c, six, sixteen, x, y, z, zero, one, two) }

go run github/youraccoutn/projectname

0 1 2 6 16 25 26 27 0 1 2

Похожие статьи
Программирование на Go
Объявление переменных
Определить тип переменной
Указатели
Константы
Установка в Linux
Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящуюю по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: