Символьные типы
Символьные типы предназначены для хранения отдельных символов (букв), из которых формируются строки (см. раздел Строки). MQL5 имеет 4 символьных типа: два размером 1 байт (char, uchar) и два размером 2 байта (short, ushort). Типы с приставкой 'u' являются беззнаковыми.
Символьные типы являются по сути целочисленными, так как хранят целочисленный код символа из соответствующей таблицы символов: в случае char это таблица ASCII-символов (коды от 0 до 127), в случае uchar — расширенная ASCII (коды от 0 до 255), а в случае short/ushort — таблица Unicode (до 65535 символов в беззнаковом варианте). Если вам интересно, ASCII расшифровывается как American Standard Code for Information Interchange.
Для строк MQL5 используются 2-байтовые символы ushort. 1-байтовые uchar обычно применяются для интеграции с внешними программами при передаче массивов произвольных данных, которые упаковываются и распаковываются в другие типы согласно прикладным протоколам (например, для подключения к криптовалютной бирже).
Константы символов записываются как буквы в обрамлении одинарных кавычек. Но также допустимо использовать рассмотренную выше (см. раздел Целые числа) целочисленную нотацию. При этом целое число должно быть в диапазоне значений для 1- или 2-байтового формата.
Дополнительно существует возможность использовать нотацию управляющих последовательностей. В ней в качестве первого символа используется обратная косая черта ('\'), после которой идет один из предопределенных управляющих символов и/или числовой код. MQL5 поддерживает следующие управляющие последовательности:
- \n — новая строка
- \r — возврат каретки
- \t — табуляция
- \\ — обратная наклонная черта
- \" — двойная кавычка
- \' — одинарная кавычка
- \X или \x — префикс для последующего указания числового кода в шестнадцатеричном формате
- \0 — префикс для последующего указания числового кода в восьмеричном формате
Основные способы использования констант символьных типов приведены в скрипте MQL5/Scripts/MQL5Book/p2/TypeChar.mq5.
void OnStart()
|
Переменные a1 и a2 получают значение символа 'a' (английская буква), двумя разными способами.
В переменную b производится попытка записать символ '£', но его код 163 находится вне диапазона char (127) и потому он "преобразуется" в -93 со знаком (компилятор выдает предупреждение). Идущие следом переменные типов uchar (c) и short (d) нормально воспринимают данный код.
Остальные переменные инициализированы с помощью управляющих последовательностей.
Символы можно обрабатывать теми же операциями, что и целые числа (см. главу Выражения).