跳转到内容

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 通过平衡参数类型来决定结果类型。然后,两个参数都将转换为结果类型,然后应用运算符。

控制类型平衡的规则是

  • 如果任一参数是 双精度浮点型,则结果为 双精度浮点型
  • 否则,如果任一参数是 浮点型,则结果为 浮点型
  • 否则,如果任一参数是 长整型,则结果为 长整型
  • 否则,结果为 整型
华夏公益教科书