Что такое Constant или Const в Golang ? Вот что вам нужно знать об использовании констант в Go .
Как следует из названия, константа означает фиксированный. То же самое справедливо и для языков программирования: как только значение константы определено, его нельзя изменить дальше. Может быть любой базовый тип данных константы, например целочисленная константа, динамическая константа, символьная константа или строка.

Как объявить: Константы объявляются как переменные, но используют ключевое слово const в качестве префикса для объявления констант с определенным типом данных. Константы нельзя объявлять с использованием синтаксиса «: = ».
Например:
package main
import "fmt"
const PI = 3.14
func main()
{
const GFG = "Quantrimang"
fmt.Println("Hello", GFG)
fmt.Println("Happy", PI, "Day")
const Correct= true
fmt.Println("Go rules?", Correct)
}
Результат:
Hello Quantrimang
Happy 3.14 Day
Go rules? true
Что нужно знать о константах в Golang
Числовые константы без типа и с типом
Типизированные константы ведут себя как неизменяемые переменные, которые могут взаимодействовать только с такими же типами, а бестиповые константы ведут себя как литеральные константы, которые могут взаимодействовать с похожими типами. Константы в Go можно объявлять с указанием типа или без него. В следующих примерах показаны типизированные и нетипизированные, именованные и неименованные числовые константы.
const untypedInteger = 123
const untypedFloating = 123.12
const typedInteger int = 123
const typedFloatingPoint float64 = 123.12
Вот список констант в языке Go:
- Константы (целочисленные константы, динамические константы, комплексные константы)
- Строка символов
- Булева константа
Числовая константа
Числовые константы — это значения с высокой точностью. Поскольку Go является статически типизированным языком, он не допускает операций, объединяющих числовые типы. Вы не можете добавить float64к intили даже int32к int. Однако по-прежнему допустимо писать 1e6*time.Secondили math.Exp(1)или даже 1<>. В Go константы, в отличие от переменных, ведут себя как обычные числа.
Числовые константы бывают трех типов:
- целое число
- плавающая точка
- сложный
Целая константа:
- Префикс определяет основание: 0x или 0X для шестнадцатеричной системы, 0 для восьмеричной и ничего для десятичной.
- Целочисленный литерал также может иметь суффикс, представляющий собой комбинацию букв U (заглавных) и L (строчных), для unsigned и long соответственно.
- Это может быть десятичная, восьмеричная или шестнадцатеричная константа.
- Тип int может хранить целые числа длиной до 64 бит, а иногда и меньше.
Вот несколько примеров целочисленных констант:
85 /* thập phân */
0213 /* bát phân */
0x4b /* thập lục phân */
30 /* int */
30u /* unsigned int */
30l /* long */
30ul /* unsigned long */
212 /* Hợp lệ */
215u /* Hợp lệ */
0xFeeL /* Hợp lệ */
078 /* Không hợp lệ: 8 không phải là chữ số bát phân */
032UU /* Không hợp lệ: không thể lặp lại hậu tố */
Комплексные константы:
Комплексные константы работают очень похоже на константы с плавающей точкой. Это упорядоченная пара или действительная пара целочисленных констант (или параметров). Константы разделяются запятыми, а пары чисел заключаются в скобки. Первая константа — это действительная часть, а вторая константа — мнимая часть. Комплексная константа COMPLEX*8 использует 8 байт памяти.
Например:
(0.0, 0.0) (-123.456E+30, 987.654E-29)
Константа динамического типа:
- Действительные числовые константы имеют целую часть, десятичную часть, дробную часть и экспоненциальную часть.
- Может быть представлена как действительная константа в десятичной или экспоненциальной форме.
- При выражении в десятичной форме оно должно включать десятичную точку, показатель степени или и то, и другое.
- А если выразить его в экспоненциальной форме, то оно должно включать целую часть, дробную часть или обе части.
Например:
3.14159 /* Hợp lệ */
314159E-5L /* Hợp lệ */
510E /* Không hợp lệ: số mũ không đầy đủ */
210f /* Không hợp lệ: không có số thập phân hoặc số mũ */
.e55 /* Không hợp lệ: thiếu số nguyên hoặc phân số */
Строка символов
- Go поддерживает два типа строковых литералов:
” ”(стиль двойных кавычек) и ‘ ‘(стиль обратных кавычек).
- Строки можно объединять с помощью операторов
+и +=.
- Строки содержат символы, похожие на литеральные символы: простые символы, управляющие последовательности и универсальные символы. И это персонаж без стиля.
- Нулевое значение строковых типов — это пустая строка, которая может быть представлена литералами
” ”или ”в них.
- Все типы строк можно сравнивать с помощью таких операторов, как
==, !=и (для сравнения похожих типов)
Синтаксис:
kiểu _string struct {
các phần tử *byte // các byte cơ bản
len int // số byte
}
Например:
"hello, quantrimang"
"hello, \
quantrimang"
"hello, " "quan" "trimang"
Здесь все три утверждения одинаковы, то есть не имеют какого-либо определенного типа.
Например:
package main
import "fmt"
func main()
{
const A = "GFG"
var B = "GeeksforGeeks"
// Chuỗi Concat.
var helloWorld = A+ " " + B
helloWorld += "!"
fmt.Println(helloWorld)
// Chuỗi so sánh.
fmt.Println(A == "GFG")
fmt.Println(B < a)="">
Результат:
GFG Quantrimang!
true
false
Временная сложность: O(1)
Вспомогательное пространство: O(1)
Булева константа
Булевы константы аналогичны строковым константам. К нему применяются те же правила, что и к строковым константам. Единственное отличие в том, что у него есть две константы без типа trueи false.
package main
import "fmt"
const Pi = 3.14
func main()
{
const trueConst = true
// Định nghĩa kiểu bằng từ khóa type
type myBool bool
var defaultBool = trueConst // được phép
var customBool myBool = trueConst // được phép
// defaultBool = customBool // không được phép
fmt.Println(defaultBool)
fmt.Println(customBool)
}
Результат:
true
true
Временная сложность: O(1)
Вспомогательное пространство: O(1)
Константы в Go: в Go есть символьные, строковые, логические и числовые константы. Const объявляет постоянное значение. Оператор constможет иметь место при наличии переменной и, таким образом, выполнять арифметические операции без какой-либо фиксированной точности.
// Minh họa hằng số bằng cách dùng go.
package main
import (
"fmt"
"math"
)
const s string = "Quantrimang"
func main() {
fmt.Println(s)
const n = 5
const d = 3e10 / n
fmt.Println(d)
fmt.Println(int64(d))
fmt.Println(math.Sin(n))
}
Результат:
Quantrimang
6e+09
6000000000
-0.9589242746631385
Временная сложность: O(1)
Вспомогательное пространство: O(1)
Если вы хотите определить несколько констант одновременно, вы можете сделать это с помощью блока скобок, как показано ниже.
package main
import "fmt"
const (
GFG = "Quantrimang"
Correct = true
Pi = 3.14
)
// Hàm chính
func main() {
fmt.Println("value of GFG : ", GFG)
fmt.Println("value of Correct : ", Correct)
fmt.Println("value of Pi : ", Pi)
}
Результат:
value of GFG : Quantrimang
value of Correct : true
value of Pi : 3.14