|
Главная » 2010 » Февраль » 10 » Литеральные значения
23:57 Литеральные значения |
Литеральные значения В предыдущем примере мы столкнулись с двумя литеральными значениями: це- лым числом и строкой. Переменные других типов также обладают определенными литеральными значениями, которые сведены в приведенную ниже таблицу. Многие из них предполагают использование суффиксов, т. е. добавление в конец лите- рального значения некоторой последовательности символов, которая позволяет определить необходимый тип. Некоторые литеральные значения могут иметь несколько типов, которые определяются в время работы компилятора по кон- тексту: Тип(ы) bool int, uint, long, ulong uint, ulong long, ulong ulong float double decimal char string Значение Логическое Целое Целое Целое Целое Вещественное Вещественное Вещественное Символьное Строковое Суффикс Отсутствует Отсутствует и или и 1 ИЛИ L u l , uL, U l , UL, l u , 1U, LU ИЛИ LU f ИЛИ F Отсутствует, d или D m или м Отсутствует Отсутствует Пример/Допустимые значения true или false 100 100U 100L 100UL 1,5F 1,5 1,5M ' а ' или escape-последовательность "a. . .а", может включать escape-последовательности Литеральные строки В этой главе нам уже встретилось несколько escape-последовательностей, ко- торые можно использовать в литеральных строках. Представляется разумным при- вести здесь таблицу всех возможных escape-последовательностей для справочных целей. Переменные и выражения 33 Escape-последовательность Выводимый символ Код символа в кодировке Unicode V \* \\ \о \а \Ь \f \п \г \t \v Одиночная кавычка . 0x0027 Двойная кавычка 0x0022 Обратный слэш 0х005С Null 0x0000 Тревога (выдает звуковой сигнал) 0x0007 Удаление предыдущего символа (backspace) 0x0008 Формирование строки (form feed) Oxoooc Новая строка ОхОООА Возврат каретки OxOOOD Символ горизонтальной табуляции 0x0009 Символ вертикальной табуляции ОхОООВ В этой таблице последний столбец содержит шестнадцатеричные значения ко- дов символов в кодировке Unicode. Кроме приведенных выше символов, с помощью escape-последовательности можно задать любой символ в кодировке Unicode. Такая последовательность дол- жна состоять из стандартного символа \, за которым следует символ и и четырех- значное шестнадцатеричное значение (например, те четыре цифры, которые расположены после символа х в последнем столбце вышеприведенной таблицы). Отсюда следует, что, например, следующие две строки эквивалентны: *Karli\'s string.* "Karli\u0027s string." Очевидно, что возможность использовать escape-последовательности в коди- ровке Unicode дает дополнительную гибкость. Мы также можем применять "дословные" строки (verbatim). Это означает, что в строку включаются все символы, находящиеся между двумя двойными кавычка- ми, в том числе символы конца строки и символы, дая которых в противном случае потребовалось бы использование escape-последовательностей. Единственным ис- ключением из этого правила является escape-последовательность для символа двойной кавычки, которая должна использоваться во избежание преждевременно- го завершения обработки строки. Чтобы получить дословную строку, необходимо поместить в ее начало символ @: ©-Verbatim string literal." Эта строка может быть задана и обычным способом, а вот для следующего примера такой способ оказывается единственно возможным: item 1 item 2" Дословные строки оказываются полезными, в частности, для имен файлов, по- скольку в них обычно присутствует большое количество обратных слэшей. Исполь- зование обычных строк привело бы к необходимости использования двойных обратных слэшей во всей строке. Например: •С: WTemp\\MyDir\\MyFile.doc* 34 Глава 3 Используя дословные литеральные строки, мы можем сделать запись более удобочитаемой. Следующая дословная строка эквивалентна вышеприведенной: @"С: \Temp\MyDir\M/File.doc" Как вы увидите дальше, строки представляют собой ссылочные типы, в отличие от всех остальных типов, с которыми вы познакомились в данной главе и которые являются значимыми типами. Одним из следствий этого является возможность присвоить строковой переменной значение Null: это будет означать, что данная строковая переменная не ссылается ни на какую строку. Подробнее этот вопрос будет рассматриваться ниже.
|
Категория: информатика |
Просмотров: 1203 |
Добавил: basic
| Рейтинг: 0.0/0 |
|
Статистика
Онлайн всего: 1 Гостей: 1 Пользователей: 0
|