Константы - GO язык.
Поскольку название CONSTANTS предполагает фиксированное значение, в языках программирования оно также одинаково, т. е, После определения значения константы его нельзя изменить дальше. Могут быть любые основные типы данных константы, такие как целочисленная константа, плавающая константа, символьная константа или строковый литерал.
Как объявить?
Константы объявляются как переменные, но при использовании ключевого слова const в качестве префикса для объявления константы определенного типа. Его нельзя объявить с помощью синтаксиса : = .
Пример:
package main
import "fmt"
const PI = 3.14
func main() {
const GFG = "GeeksforGeeks"
fmt.Println("Hello", GFG)
fmt.Println("Happy", PI, "Day")
const Correct= true
fmt.Println("Go rules?", Correct)
}
ВЫХОД:
Hello GeeksforGeeks Happy 3.14 Day Go rules? true
Нетипизированные и типизированные числовые константы:
Типизированные константы работают так же, как неизменяемые переменные могут взаимодействовать только с одним и тем же типом, а нетипизированные константы работают так, как литералы могут взаимодействовать с похожими типами. Константы могут быть объявлены с или без типа в Go. Ниже приведен пример, который показывает типизированные и нетипизированные числовые константы, которые имеют как имена, так и имена.
const untypedInteger = 123 const untypedFloating typed = 123.12 const typedInteger int = 123 const typedFloatingPoint float64 = 123.12
Ниже приведен список констант в Go Language:
- Числовая постоянная (целочисленная постоянная, плавающая постоянная, комплексная постоянная)
- Строковые литералы
- Логическая константа
Числовая константа:
Числовые константы являются высокоточными значениями . As Go — это статически типизированный язык, который не допускает операций, которые смешивают числовые типы. Вы не можете добавить float64 к int или даже к int32 к int . Тем не менее, допустимо писать 1e6 * time.Second или math.Exp (1) или даже 1 << ('/ t' + 2.0) . В Go константы, в отличие от переменных, ведут себя как обычные числа.
Числовая константа может быть трех видов: целочисленная, с плавающей точкой, комплексная.
Целочисленная константа:
- Префикс указывает основание или основание: 0x или 0X для шестнадцатеричного, 0 для восьмеричного и ничего для десятичного.
- Целочисленный литерал также может иметь суффикс, который является комбинацией U (верхний регистр) и L (верхний регистр), для беззнаковых и длинных соответственно
- Это может быть десятичная, восьмеричная или шестнадцатеричная константа .
- Int может хранить максимум 64-битное целое, а иногда и меньше.
Ниже приведены некоторые примеры Integer Constant:
85 /* decimal */ 0213 /* octal */ 0x4b /* hexadecimal */ 30 /* int */ 30u /* unsigned int */ 30l /* long */ 30ul /* unsigned long */ 212 /* Legal */ 215u /* Legal */ 0xFeeL /* Legal */ 078 /* Illegal: 8 is not an octal digit */ 032UU /* Illegal: cannot repeat a suffix */
Комплексная константа:
Сложные константы ведут себя во многом как константы с плавающей точкой. Это упорядоченная пара или действительная пара целочисленных констант (или параметров). Константы разделены запятой, а пара заключена в круглые скобки. Первая константа — это действительная часть, а вторая — мнимая часть. Комплексная константа, COMPLEX * 8, использует 8 байт памяти.
ПРИМЕР:
(0.0, 0.0) (-123.456E+30, 987.654E-29)
Константа плавающего типа:
- Константа с плавающей точкой имеет целочисленную часть, десятичную точку, дробную часть и экспоненту .
- Может представлять собой плавающую константу в десятичной или экспоненциальной форме.
- При представлении с использованием десятичной формы необходимо указать десятичную точку, показатель степени или оба.
- И при представлении с использованием экспоненциальной формы, должны включать в себя целую часть, дробную часть или оба.
Ниже приведены примеры констант типа Floating:
3.14159 /* Legal */ 314159E-5L /* Legal */ 510E /* Illegal: incomplete exponent */ 210f /* Illegal: no decimal or exponent */ .e55 /* Illegal: missing integer or fraction */
Строковые литералы
- Go поддерживает два типа строковых литералов: «» (стиль двойной кавычки) и «» (обратная кавычка).
- Строки могут быть объединены с помощью операторов + и + = .
- Строка содержит символы, которые похожи на символьные литералы: простые символы, escape-последовательности и универсальные символы. И это не типизированный.
- Нулевые значения строковых типов — это пустые строки, которые могут быть представлены с помощью или
''в литерале. - Строковые типы сравнимы с помощью таких операторов, как ==,! = И (для сравнения одинаковых типов).
Синтаксис
type _string struct {
elements *byte // underlying bytes
len int // number of bytes
}
Пример для отображения строковых литералов:
hello, geeksforgeeks
Здравствуйте, /
geeksforgeeks»
привет, гики кузницы
Здесь все три вышеприведенных оператора похожи, т. Е. Не имеют какого-либо конкретного типа.
Пример:
package main
import "fmt"
func main() {
const A= "GFG"
var B = "GeeksforGeeks"
// Concat strings.
var helloWorld = A+ " " + B
helloWorld += "!"
fmt.Println(helloWorld)
// Compare strings.
fmt.Println(A == "GFG")
fmt.Println(B < A)
}
Выход:
GFG GeeksforGeeks true false
Булева константа:
Булевы константы похожи на строковые константы. Он применяет те же правила, что и строковая константа. Разница лишь в том, что он имеет две нетипизированные константы true и false.
package main
import "fmt"
const Pi = 3.14
func main() {
const trueConst = true
type myBool bool
var defaultBool = trueConst // allowed
var customBool myBool = trueConst // allowed
// defaultBool = customBool // not allowed
fmt.Println(defaultBool)
fmt.Println(customBool)
}
Выход:
true true