Литералы
Литералы представляют неизменяемые значения (иногда их еще называют константами). Литералы можно передавать переменным в качестве значения. Литералы бывают логическими, целочисленными, вещественными, символьными и строчными. И отдельный литерал представляет ключевое слово 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'
Также мы можем передать их вывести на консоль с помощью Console.WriteLine
:
Console.WriteLine('2');
Console.WriteLine('A');
Console.WriteLine('T');
Специальную группу представляют управляющие последовательности. Управляющая последовательность представляет символ, перед которым ставится слэш. И данная последовательность интерпретируется определенным образом. Наиболее часто используемые последовательности:
\n
- перевод строки\t
- табуляция\\
- слэш
И если компилятор встретит в тексте последовательность \t
, то он будет воспринимать эту последовательность не как слэш и букву t, а как табуляцию - то есть длинный отступ.
Также символы могут определяться в виде шестнадцатеричных кодов, также заключенный в одинарные кавычки.
Еще один способ определения символов представляет использования шестнадцатеричных кодов ASCII. Для этого в одинарных кавычках указываются символы \x
, после которых идет шестнадцатеричный код символа из таблицы 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
представляет ссылку, которая не указывает ни на какой объект. То есть по сути отсутствие значения.