BlitzMax/语言/数据类型
外观
所有常量、变量、函数和表达式都与一个关联的类型。BlitzMax 支持以下类型
描述 | 语法 | 最小值 | 最大值 |
8 位无符号整数 | 字节 | 0 | 255 |
16 位无符号整数 | 短整型 | 0 | 65535 |
32 位有符号整数 | 整型 | -2^31 | +2^31-1 |
64 位有符号整数 | 长整型 | -2^63 | +2^63-1 |
32 位浮点数 | 浮点型 | (+/-)10^-38 | (+/-)10^38 |
64 位浮点数 | 双精度浮点型 | (+/-)10^-308 | (+/-)10^308 |
16 位 Unicode 字符串 | 字符串 | - | - |
对象 | 类型名 | - | - |
数组 | 元素类型 [ ] | - | - |
函数 | 返回类型 ( 参数 ) | - | - |
指针 | 值类型 Ptr | - | - |
变量 | 变量类型 Var | - | - |
整数用于存储简单的数字数据,没有任何小数部分。无符号整数只能存储正值,而有符号整数可以存储正值和负值。
浮点数用于存储可能包含小数部分的数字数据。
字符串用于存储字符序列:字母、标点符号、数字等等。使用字符串存储诸如名称之类的非数字数据。
数组用于存储变量序列。数组中的一个变量可以通过使用整数偏移量“索引”数组来访问。有关数组的更多信息,请参阅数组部分。
对象是用户定义类型的实例。请参阅用户定义类型部分。
注释:除了在SuperStrict模式下,数据类型必须始终指定外,省略数据类型时使用 Int。
当需要时,例如,将表达式赋给变量时,或者将表达式传递给函数时,BlitzMax 会自动执行以下类型转换。
源类型 | 目标类型 |
整数 | 浮点数、字符串 |
浮点数 | 整数、字符串 |
您还可以使用强制转换操作显式地转换类型。这采用类型说明符后跟方括号中的表达式的形式。
显式强制转换允许您执行以下额外转换
源类型 | 目标类型 |
字符串 | 整数、浮点数 |
例如
Local n:Int=10 Local t:String="20" Print Int( t ) Print String( n )
在执行加法或乘法之类的算术运算时,有可能提供不匹配的参数类型。例如,加法运算符可用于将整数值添加到浮点值。但结果应该是什么类型呢?
BlitzMax 通过平衡参数类型来决定结果类型。然后,两个参数都将转换为结果类型,然后应用运算符。
控制类型平衡的规则是
- 如果任一参数是 双精度浮点型,则结果为 双精度浮点型
- 否则,如果任一参数是 浮点型,则结果为 浮点型
- 否则,如果任一参数是 长整型,则结果为 长整型
- 否则,结果为 整型