Unetway

Go - Константы

Константы относятся к фиксированным значениям, которые программа не может изменять во время выполнения. Эти фиксированные значения также называются литералами.

Константы могут быть любого из основных типов данных, таких как целочисленная константа, плавающая константа, символьная константа или строковый литерал . Существуют также константы перечисления.

Константы обрабатываются так же, как и обычные переменные, за исключением того, что их значения не могут быть изменены после их определения.

Целочисленные литеры

Целочисленный литерал может быть десятичной, восьмеричной или шестнадцатеричной константой. Префикс указывает базу или основание: 0x или 0X для шестнадцатеричного, 0 для восьмеричного и ничего для десятичного.

Целочисленный литерал может также иметь суффикс, который представляет собой комбинацию U и L, для беззнаковых и длинных, соответственно. Суффикс может быть прописным или строчным и может быть в любом порядке.

212         /* Legal */
215u        /* Legal */
0xFeeL      /* Legal */
078         /* Illegal: 8 is not an octal digit */
032UU       /* Illegal: cannot repeat a suffix */
85         /* decimal */
0213       /* octal */
0x4b       /* hexadecimal */
30         /* int */
30u        /* unsigned int */
30l        /* long */
30ul       /* unsigned long */

Литералы с плавающей запятой

Литерал с плавающей запятой имеет целую часть, десятичную точку, дробную часть и экспоненциальную часть. Вы можете представлять литералы с плавающей запятой либо в десятичной форме, либо в экспоненциальной форме.

Представляя, используя десятичную форму, вы должны указать десятичную точку, показатель экспоненты или и то, и другое, представляя, используя экспоненциальную форму, вы должны включить целую часть, дробную часть или и то, и другое. Подписанный показатель вводится e или E.

3.14159       /* Legal */
314159E-5L    /* Legal */
510E          /* Illegal: incomplete exponent */
210f          /* Illegal: no decimal or exponent */
.e55          /* Illegal: missing integer or fraction */

Escape Sequence

Когда некоторым символам предшествует обратная косая черта, они будут иметь особое значение в Go. Они называются кодами Escape Sequence, которые используются для представления новой строки (\ n), tab (\ t), backspace и т. Д. Здесь у вас есть список некоторых из таких кодов escape-последовательности:

Эквивалентная последовательность Описание
\\ \ персонаж
\' ' персонаж
\" " персонаж
\? ? персонаж
\a предупреждение или звонок
\b возврат на одну позицию
\f подача формы
\n новая линия
\r возврат каретки
\t горизонтальная вкладка
\v вертикальная вкладка
\ooo октальное число от одной до трех цифр
\xhh . . . шестнадцатеричное число одной или нескольких цифр

В следующем примере показано, как использовать \ t в программе:

package main

import "fmt"

func main() {
   fmt.Printf("Hello\tWorld!")
}

Строковые литералы в Go

Строковые литералы или константы заключены в двойные кавычки «». Строка содержит символы, похожие на символьные литералы: простые символы, escape-последовательности и универсальные символы.

Вы можете разбить длинную строку на несколько строк, используя строковые литералы и разделяя их с помощью пробелов.

Вот несколько примеров строковых литералов. Все три формы идентичны.

"hello, dear"

"hello, \

dear"

"hello, " "d" "ear"

Const Ключевое слово

Вы можете использовать префикс const для объявления констант определенного типа следующим образом:

const variable type = value;

В следующем примере показано, как использовать ключевое слово const:

package main

import "fmt"

func main() {
   const LENGTH int = 10
   const WIDTH int = 5   
   var area int

   area = LENGTH * WIDTH
   fmt.Printf("value of area : %d", area)   
}

Когда приведенный выше код компилируется и выполняется, он производит следующий результат:

value of area : 50

Обратите внимание, что это хорошая практика программирования для определения констант в CAPITALS.