此页面显示了在GML中对不同数据类型执行算术运算时可能得到的所有不同结果。
所有表格都遵循相同的格式,行(左)显示算术运算的左手侧,列(右)显示右手侧,例如:
<result> = <LHS or row> + <RHS or column>
重要 在 GameMaker 2022.9 之前的版本中,这些表格是颠倒的 -- 列显示 LHS,行显示 RHS。这是违反直觉的,结果被改变为相反的情况。
Add (+) | Real | Bool 布尔 | String | Int32 | Int64 | Ptr | undefined | Array |
Real | Real | Real | String | Real | Real | Error | Error | Error |
Bool | Real | Real | String | Real | Real | Error | Error | Error |
String | Error | Error | String | Error | Error | Error | Error | Error |
Int32 | Real | Real | String | Int32 | Int64 | Error | Error | Error |
Int64 | Real | Real | String | Int64 | Int64 | Error | Error | Error |
Ptr | Error | Error | Error | Error | Error | Error | Error | Error |
undefined | Error | Error | Error | Error | Error | Error | Error | Error |
Array | Error | Error | Error | Error | Error | Error | Error | Error |
Subtract (-) | Real | Bool 布尔 | String | Int32 | Int64 | Ptr | undefined | Array |
Real | Real | Real | Error | Real | Real | Error | Error | Error |
Bool | Real | Real | Error | Real | Real | Error | Error | Error |
String | Error | Error | Error | Error | Error | Error | Error | Error |
Int32 | Real | Real | Error | Int32 | Int64 | Error | Error | Error |
Int64 | Real | Real | Error | Int64 | Int64 | Error | Error | Error |
Ptr | Error | Error | Error | Error | Error | Error | Error | Error |
undefined | Error | Error | Error | Error | Error | Error | Error | Error |
Array | Error | Error | Error | Error | Error | Error | Error | Error |
Multiply (*) | Real | Bool 布尔 | String | Int32 | Int64 | Ptr | undefined | Array |
Real | Real | Real | String | Real | Real | Error | Error | Error |
Bool | Real | Real | Error | Real | Real | Error | Error | Error |
String | Error | Error | Error | Error | Error | Error | Error | Error |
Int32 | Real | Real | String | Int32 | Int64 | Error | Error | Error |
Int64 | Real | Real | Error | Int64 | Int64 | Error | Error | Error |
Ptr | Error | Error | Error | Error | Error | Error | Error | Error |
undefined | Error | Error | Error | Error | Error | Error | Error | Error |
Array | Error | Error | Error | Error | Error | Error | Error | Error |
Divide (/) | Real | Bool 布尔 | String | Int32 | Int64 | Ptr | undefined | Array |
Real | Real | Real | Error | Real | Real | Error | Error | Error |
Bool | Real | Real | Error | Real | Real | Error | Error | Error |
String | Error | Error | Error | Error | Error | Error | Error | Error |
Int32 | Real | Real | Error | Int32 | Int64 | Error | Error | Error |
Int64 | Real | Real | Error | Int64 | Int64 | Error | Error | Error |
Ptr | Error | Error | Error | Error | Error | Error | Error | Error |
undefined | Error | Error | Error | Error | Error | Error | Error | Error |
Array | Error | Error | Error | Error | Error | Error | Error | Error |
Divide (div) | Real | Bool 布尔 | String | Int32 | Int64 | Ptr | undefined | Array |
Real | Real | Real | Error | Real | Real | Error | Error | Error |
Bool | Real | Real | Error | Real | Real | Error | Error | Error |
String | Error | Error | Error | Error | Error | Error | Error | Error |
Int32 | Real | Real | Error | Int32 | Int64 | Error | Error | Error |
Int64 | Real | Real | Error | Int64 | Int64 | Error | Error | Error |
Ptr | Error | Error | Error | Error | Error | Error | Error | Error |
undefined | Error | Error | Error | Error | Error | Error | Error | Error |
Array | Error | Error | Error | Error | Error | Error | Error | Error |
Mod (%) | Real | Bool 布尔 | String | Int32 | Int64 | Ptr | undefined | Array |
Real | Real | Real | Error | Real | Real | Error | Error | Error |
Bool | Real | Real | Error | Real | Real | Error | Error | Error |
String | Error | Error | Error | Error | Error | Error | Error | Error |
Int32 | Real | Real | Error | Int32 | Int64 | Error | Error | Error |
Int64 | Real | Real | Error | Int64 | Int64 | Error | Error | Error |
Ptr | Error | Error | Error | Error | Error | Error | Error | Error |
undefined | Error | Error | Error | Error | Error | Error | Error | Error |
Array | Error | Error | Error | Error | Error | Error | Error | Error |
如下表所示,有几个特殊常数可能等于也可能不等于它们本身:
Equality (==) | NaN | undefined 未定义 | infinity |
NaN | false | false | false |
undefined | false | true | false |
infinity | false | false | true |