Константы в Go

Содержание
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

Article author: Andrei Olegovich

Похожие статьи
Development на Go
Объявление переменных
Определить тип переменной
Указатели
Константы
Установка в Linux
Go course: zero to hero in 50 lessons
Banner image

Search this site

Subscribe to Telegram channel @aofeed to follow new articles and updates to old ones

Go to channel

@aofeed

Ask a question in the Telegram group

@aofeedchat

Contacts and cooperation:
I recommend our hosting beget.ru
Write to info@urn.su if you:
1. Want to write an article for our site or translate an article into your native language.
2. Want to place thematically relevant ads on the site.
3. Ads on my site pass maximum censorship. If you see an ad block unsuitable for school-age children, shocking or misleading - please contact us by e-mail
4. Found a mistake, inaccuracy, bug, etc. on the site. ... .......
5. Articles can be shared on social media by clicking a network icon: