Gambas/变量
外观
< 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
名称 | 描述 | 内存大小 | 默认值 |
---|---|---|---|
布尔 | 真或假 | 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