Difference between revisions of "ZH/Documentation/BASIC Guide/Arrays"
Line 3: | Line 3: | ||
|ShowPrevNext=block | |ShowPrevNext=block | ||
|ShowPrevPage=block | |ShowPrevPage=block | ||
− | |PrevPage=Documentation/BASIC Guide/Date | + | |PrevPage=ZH/Documentation/BASIC Guide/Date |
− | |NextPage=Documentation/BASIC Guide/Scope of Variables | + | |NextPage=ZH/Documentation/BASIC Guide/Scope of Variables |
|lang=block | |lang=block | ||
}} | }} | ||
Line 120: | Line 120: | ||
{{PDL1}} | {{PDL1}} | ||
+ | {{InterWiki_Languages_BasicGuide|articletitle=Documentation/BASIC Guide/Arrays}} | ||
{{InterWiki_Languages_BasicGuide|articletitle=Documentation/BASIC Guide/Arrays}} | {{InterWiki_Languages_BasicGuide|articletitle=Documentation/BASIC Guide/Arrays}} |
Revision as of 22:06, 12 December 2008
除了简单变量(标量)以外,Apache OpenOffice Basic 还支持数组(数据字段)。数据字段包含多个变量,可通过索引对这些变量进行寻址。
简单数组
数组声明与简单变量声明类似。但与变量声明不同的是,数组名称后面是一对括号,其中包含元素数目规范。表达式
Dim MyArray(3)
声明了一个数组,其中包含四个变体数据类型的变量,即 MyArray(0)、MyArray(1)、MyArray(2) 和 MyArray(3)。
也可以在数组中声明特定类型的变量。例如,以下行声明了一个包含四个整型变量的数组:
Dim MyInteger(3) As Integer
在上面的示例中,数组的索引始终以标准起始值零开始。也可以为数据字段声明指定一个包含起始值和最终值的有效性范围。以下示例声明了一个包含六个整型值的数据字段,可以使用索引 5 至 10 对这些值进行寻址:
Dim MyInteger(5 To 10)
索引不必为正值。以下示例也是一个正确的声明,但具有负数据字段限制值:
Dim MyInteger(-10 To -5)
它声明了一个包含 6 个值的整型数据字段,可以使用索引 -10 至 -5 对这些值进行寻址。
在定义数据字段索引时,必须遵循以下三个限制:
- 可能的最小索引为 -32768。
- 可能的最大索引为 32767。
- 最大元素数目(在数据字段维中)为 16368。
起始索引的指定值
数据字段的起始索引通常以值 0 开始。也可以使用以下调用将所有数据字段声明的起始索引更改为值 1:
Option Base 1
如果要将此调用应用于模块中的所有数组声明,则必须将其包含在模块标头中。不过,此调用不影响通过 Apache OpenOffice API 定义的 UNO 序列,其索引始终以 0 开始。要使程序更清晰,应避免使用 Option Base 1。
如果使用 Option Base 1,数组中的元素数目不会受到影响,只有起始索引会发生变化。声明
Option Base 1
' ...
Dim MyInteger(3)
创建了 4 个整型变量,可以使用表达式 MyInteger(1)、MyInteger(2)、MyInteger(3) 和 MyInteger(4) 来描述这些变量。
多维数据字段
除了单维数据字段之外,Apache OpenOffice Basic 还支持使用多维数据字段。相应的维之间用逗号分隔。示例
Dim MyIntArray(5, 5)
定义了一个二维整型数组,每一维具有 6 个索引(可通过索引 0 至 5 进行寻址)。整个数组总共可记录 6 x 6 = 36 个整型值。
虽然可以在 Apache OpenOffice Basic 数组中定义数百个维,但可用内存量限制了可以拥有的维数。
数据字段维的动态变更
上面的示例基于已指定维的数据字段。也可以定义数据字段维动态变更的数组。例如,可以定义一个数组,以包含文本中所有以字母 A 开头的单词。由于最初不知道这些单词的数目,因此,需要以后能够更改字段限制值。为此,请在 Apache OpenOffice Basic 中使用以下调用:
ReDim MyArray(10)
以下示例更改了初始数组维,以便可以记录 11 或 21 个值:
Dim MyArray(4) As Integer ' Declaration with five elements
' ...
ReDim MyArray(10) As Integer ' Increase to 11 elements
' ...
ReDim MyArray(20) As Integer ' Increase to 21 elements
在重置数组维时,可以使用前面几节中简要介绍的任意选项。其中包括声明多维数据字段和指定显式起始值和最终值。更改数据字段维后,所有内容都将丢失。如果要保留原始值,请使用 Preserve 命令:
Dim MyArray(10) As Integer ' Defining the initial
' dimensions
' ...
ReDim Preserve MyArray(20) As Integer ' Increase in
' data field, while
' retaining content
在使用 Preserve 时,请确保维数和变量类型保持不变。
如果将 ReDim 与 Preserve 一起使用,则必须使用原始数据字段声明中指定的同一数据类型。
Content on this page is licensed under the Public Documentation License (PDL). |