Константы в 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
Объявление переменных
Определить тип переменной
Указатели
Константы
Сертификаты
Запросы к REST API на Go
Установка в Linux