数组声明

DIM Identifier AS [ NEW ] Datatype [ Array dimensions ... ]

注意,可以使用任意表达式指定数组大小。

示例

Dim aWords As New String[WORD_MAX * 2]
Dim aMatrix As New Float[3, 3]
Dim aResult As String[]

在Gambas3中,数组元素可以使用任何数据类型。

示例

DIM aLabel AS NEW Label[12, 12]
DIM aResult AS NEW String[][12] ' 一个字符串数组的数组!

维度

数组可以有多个维度,最大可以有8维。

示例

Dim iGroupc As New Integer[27, 9]
Dim iFieldr As New Integer[9]
Dim iX9X AS NEW Integer[3, 4, 5, 2, 3, 2, 2, 4, 2] '将会报告错误

声明中的"DIM"关键字源于六十年代,那时BASIC变量不需要声明,除非是有维度的数组。

Gambas使用[ ]取代( )来声明维度和使用下标。

嵌入式数组

[ STATIC ] { PUBLIC | PRIVATE } Identifier [ Array dimensions ... ] AS Native Datatype

嵌入式数组是一个被直接分配在声明所在 对象内部的数组。

这样的数组不能被对象共享和删除。

嵌入式数组不能是公共的,而且不能进行初始化。

创建嵌入式数组是为了简化Gambas和位于共享库中的外部函数之间的接口。

因此,强烈建议仅在不能使用普通数组的情况下使用它们。

或者是使用嵌入式数组的代码比使用普通数组的代码运行得更快,在某些情况下这是可能的。

在Gambas3中,嵌入式数组不能再被当作局部变量,但是可以是公共的!

自从 3.17

内嵌数组的维度可以用 constant expressions 定义。

示例

Private Handles[8] As Label
Static Private TicTacToe[3, 3] As Integer

参见