Константы в Go

Contents
Introduction
Объявление
Автоматическое присвоение типа
iota

Introduction

Значения констант должны быть определены до компиляции.
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

Related Articles
Development на Go
Объявление переменных
Определить тип переменной
Указатели
Константы
Установка в Linux
Banner Image

Search on this site

Subscribe to @aofeed channel for updates

Visit Channel

@aofeed

Feedback and Questions in Telegram

@aofeedchat