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 透過平衡引數型別來決定結果型別。然後,兩個引數都將轉換為結果型別,然後應用運算子。
控制型別平衡的規則是
- 如果任一引數是 雙精度浮點型,則結果為 雙精度浮點型
- 否則,如果任一引數是 浮點型,則結果為 浮點型
- 否則,如果任一引數是 長整型,則結果為 長整型
- 否則,結果為 整型