Константы в Go
Некоторые значения не должны меняться после того, как они заданы. Для них используйте ключевое слово const.
Оно объявляет переменную «константой», делая её неизменяемой и доступной только для чтения.
Примечание: Значение константе нужно задать в момент её объявления.
Синтаксис const
main.go
const CONSTNAME type = value
Объявление константы
Эта программа объявляет константу в Go и выводит её:
Пример
Prompt
Объяви константу PI со значением 3.14 и выведи её.
Вывод: Программа на Go и захваченный вывод
main.go
package main
import ("fmt")
const PI = 3.14
func main() {
fmt.Println(PI)
}
Правила для констант
- Правила именования переменных применяются и к константам
- Имена констант обычно пишут заглавными буквами, чтобы их было легко узнать и отличить от переменных
- Их можно объявлять внутри функции или вне её
Типы констант
Константы бывают двух видов:
- Типизированные константы
- Нетипизированные константы
Типизированные константы
У типизированной константы тип указан в объявлении:
Пример
Prompt
Объяви типизированную константу типа int и выведи её.
Вывод: Программа на Go и захваченный вывод
main.go
package main
import ("fmt")
const A int = 1
func main() {
fmt.Println(A)
}
Нетипизированные константы
У нетипизированной константы тип в объявлении не указан.
Примечание: В этом случае тип выводится, то есть компилятор определяет его по значению константы.
Пример
Prompt
Объяви нетипизированную константу без указания типа и выведи её.
Вывод: Программа на Go и захваченный вывод
main.go
package main
import ("fmt")
const A = 1
func main() {
fmt.Println(A)
}
Константы: неизменяемые и только для чтения
После объявления константы её значение зафиксировано. Попытка изменить его позже приводит к ошибке:
Пример
Prompt
Покажи ошибку, которая возникает при попытке изменить значение константы в Go.
Вывод: Программа на Go и захваченный вывод
main.go
package main
import ("fmt")
func main() {
const A = 1
A = 2
fmt.Println(A)
}
Объявление нескольких констант
Несколько констант можно разместить в одном блоке, чтобы их было легко читать:
Пример
Prompt
Объяви несколько констант в одном блоке и выведи каждую из них.
Вывод: Программа на Go и захваченный вывод
main.go
package main
import ("fmt")
const (
A int = 1
B = 3.14
C = "Привет!"
)
func main() {
fmt.Println(A)
fmt.Println(B)
fmt.Println(C)
}