Литералы

Закрыто
zerefu
Администратор
Сообщения: 12
Зарегистрирован: 19 фев 2019, 12:57

Литералы

Сообщение zerefu » 24 май 2019, 06:34

Литералы представляют неизменяемые значения (иногда их еще называют константами). Литералы можно передавать переменным в качестве значения. Литералы бывают логическими, целочисленными, вещественными, символьными и строчными. И отдельный литерал представляет ключевое слово null.

Логические литералы
Есть две логических константы - true (истина) и false (ложь):

Console.WriteLine(true);

Console.WriteLine(false);

Целочисленные литералы
Целочисленные литералы представляют положительные и отрицательные целые числа, например, 1, 2, 3, 4, -7, -109. Целочисленные литералы могут быть выражены в десятичной, шестнадцатеричной и двоичной форме.

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

Console.WriteLine(-11);

Console.WriteLine(5);

Console.WriteLine(505);

Числа в двоичной форме предваряются символами 0b, после которых идет набор из нулей и единиц:

Console.WriteLine(0b11);        // 3

Console.WriteLine(0b1011);      // 11

Console.WriteLine(0b100001);    // 33

Для записи числа в шестнадцатеричной форме применяются символы 0x, после которых идет набор символов от 0 до 9 и от A до F, которые собственно представляют число:

Console.WriteLine(0x0A);    // 10

Console.WriteLine(0xFF);    // 255

Console.WriteLine(0xA1);    // 161

Вещественные литералы
Вещественные литералы представляют вещественные числа. Этот тип литералов имеет две формы. Первая форма - вещественные числа с фиксированной запятой, при которой дробную часть отделяется от целой части точкой. Например:

3.14

100.001

-0.38

Также вещественные литералы могут определяться в экспоненциальной форме MEp, где M — мантисса, E - экспонента, которая фактически означает "*10^" (умножить на десять в степени), а p — порядок. Например:

Console.WriteLine(3.2e3);   // по сути равно 3.2 * 10<sup>3</sup> = 3200

Console.WriteLine(1.2E-1);  // равно 1.2 * 10<sup>-1</sup> = 0.12

Символьные литералы
Символьные литералы представляют одиночные символы. Символы заключаются в одинарные кавычки.



Символьные литералы бывают нескольких видов. Прежде всего это обычные символы:

'2'

'A'

'T'

Специальную группу представляют управляющие последовательности Управляющая последовательность представляет символ, перед которым ставится обратный слеш. И данная последовательность интерпретируется определенным образом. Наиболее часто используемые последовательности:

'\n' - перевод строки

'\t' - табуляция

'\' - обратный слеш

И если компилятор встретит в тексте последовательность \t, то он будет воспринимать эту последовательность не как слеш и букву t, а как табуляцию - то есть длинный отступ.

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

Еще один способ определения символов представляет использования шестнадцатеричных кодов ASCII. Для этого в одинарных кавычках указываются символы '\x', после которых идет шестнадцатеричный код символа из таблицы ASCII. Коды символов из таблицы ASCII можно посмотреть здесь.

Например, литерал '\x78' представляет символ "x":

Console.WriteLine('\x78');    // x

Console.WriteLine('\x5A');    // Z

И последний способ определения символьных литералов представляет применение кодов из таблицы символов Unicode. Для этого в одинарных кавычках указываются символы '\u', после которых идет шестнадцатеричный код Unicode. Например, код '\u0411' представляет кириллический символ 'Б':

Console.WriteLine('\u0420');    // Р

Console.WriteLine('\u0421');    // С

Строковые литералы
Строковые литералы представляют строки. Строки заключаются в двойные кавычки:

Console.WriteLine("hello");

Console.WriteLine("фыва");

Console.WriteLine("hello word");

Если внутри строки необходимо вывести двойную кавычку, то такая внутренняя кавычка предваряется обратным слешем:

Console.WriteLine("Компания \"Рога и копыта\"");

Также в строках можно использовать управляющие последовательности. Например, последовательность '\n' осуществляет перевод на новую строку:

Console.WriteLine("Привет \nмир");

При выводе на консоль слово "мир" будет перенесено на новую строку.

null
null
 представляет ссылку, которая не указывает ни на какой объект. То есть по сути отсутствие значения.

Закрыто