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