跳轉到內容

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
華夏公益教科書