字符类型
字符数据类型用于存储构成字符串的特定字符(字母)(参见 字符串)。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) 类型的变量认为这个代码是正常的。
其他变量使用转义序列初始化。
可对字符采取的处理操作与整数相同(参见 表达式)。