跳转到内容

Gambas/变量

来自维基教科书,开放的书籍,开放的世界

返回 Gambas

变量声明(维度)

[编辑 | 编辑源代码]

在 Gambas 中,必须声明每个变量。要设置变量的维度,代码为

Dim variablename as type

您可以跳过 Dim 这个词,因此以下内容也是正确的

variablename as type

变量名称可以是您想要的任何名称。但是,必须选择类型。您可以选择整数、字符串、变体和其他一些类型。这告诉计算机变量保存什么类型的信息。单精度和整数保存数字,而字符串保存文本。

'Dimensioning 
Dim i as Integer
Dim x as Variant
'assignment
i = 31             'This is ok
i = "i do"     'Error: type mismatch(i is an integer;"i do" is a string)
x = 341            'This is ok
x = "books"        'This is all right

在 Gambas 中,您无法像在 VB 中那样设置数组的维度。以下是错误的

    xxxxx  Dim x(1 to 10) as integer  xxxxxx

维度设置还可以用于告诉计算机变量是公共的还是私有的。当变量为公共时,它可以在所有子程序中使用和更改。要使变量为公共,您必须在代码的“声明”区域中进行设置。这些声明位于代码的第一行,在所有子程序和其他代码之上。

示例:您需要表单上的一个命令按钮才能使其运行。

PUBLIC SUB Button1_Click()
'Declaration
x AS integer
y AS float
z AS String
'assignment
x = 2
y = 2.378
z = "That ist correct"
'the use of variables 
print x,y,z,x*y
END

以下程序将导致错误:x 已经声明

'xxxxxxxxxxxxxxxxxxxx
PUBLIC SUB Button1_Click()
DIM x AS integer
DIM x AS float
DIM x AS String
x = 2
x = 2.378
y = "That ist not correct"
print x,x,x
END
'xxxxxxxxxxxxxxxxxxxxxx

在以下程序中,您也会导致一些错误警告,因为 Gambas 中大写和小写符号没有区别。

PUBLIC SUB Button1_Click()
DIM x AS integer
DIM X AS float
DIM x$ AS String
x = 2
X = 2.378
x$ = "that ist correct "
print x,X,x$
END

Gambas 预定义数据类型列表,用于声明变量

[编辑 | 编辑源代码]
名称 描述 内存大小 默认值
布尔 真或假1 字节
字节 0 ... 255 1 字节 0
短整型 -32768 ... +32767 2 字节 0
整型 -2147483648 ... +2147483647 4 字节 0
浮点型 C 中的 double 数据类型相同8 字节 0.0
日期 日期和时间,每个都存储在一个 整数 中。8 字节
字符串 对可变长度字符串的引用。4 字节
变体 任何数据类型。12 字节
对象 对对象的匿名引用。4 字节

声明变量后,您可以为其赋值。

Variable = Expression

这将把表达式的值赋值给以下元素之一:

  • 局部变量。
  • 函数参数。
  • 全局(类)变量。
  • 数组插槽。
  • 对象公共变量。
  • 对象属性。

示例

iVal = 1972
Name = "Gambas"
hObject.Property = iVal
cCollection[sKey] = Name

某些版本的 basic 允许使用 TYPE 定义创建结构化变量,如下所示

' This will not work in gambas
TYPE rhubarbstructure
  foo AS STRING * 32
  bar AS INTEGER
END TYPE
PUBLIC rhubarb AS rhubarbstructure

目前,gambas 不支持 TYPE 关键字。但是,可以使用类定义来实现相同的效果。

创建类

[编辑 | 编辑源代码]

集成开发环境 文件中,创建一个 文件 rhubarbstructure.class,如下所示

PUBLIC foo AS STRING
PUBLIC bar AS INTEGER

现在,可以通过在代码模块中创建相应的定义来定义利用该类的变量,如下所示

DIM rhubarb AS rhubarbstructure
华夏公益教科书