Константы - GO язык.

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


Report Page