Константы в 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 |