變數是什麼,但保留記憶體來儲存值。這意味著,當創建一個變數在內存中保留一些空間。
一個變數的數據類型的基礎上,解釋器分配記憶體,並決定什麼可以被存儲在保留的記憶體。因此,你可以通過不同的數據類型分配給變數,這些變數存儲整數,小數,或字元。Euphoria 數據類型在不同的章節解釋。
這些存儲單元被稱為變數是可以改變的,因為他們的值有生命週期。下一章將討論Euphoria 常數,其值不能改變,一次分配。
變數聲明:
Euphoria 變數必須明確聲明保留記憶體空間。因此,變數聲明前必須分配一個變數值。
變數聲明有類型名被聲明的變數的列表。例如:
integer x, y, z sequence a, b, x |
當聲明一個變數命名變數,定義哪種類型的值可能合法地分配給程式在執行過程中的變數。
聲明一個變數的簡單的動作,不分配給它的任何值。如果嘗試之前讀它分配任何值,Euphoria 會發出運行時錯誤變數xyz從未被分配一個值。
分配值:
等號(=)是用來給變數賦值。 =運算符左側的運算元的變數名稱和=運算符右邊的運算元是存儲在變數中的值。例如:
#!/home/euphoria/bin/eui -- Here is the declaration of the variables. integer counter integer miles sequence name counter = 100 -- An integer assignment miles = 1000.0 -- A floating point name = "John" -- A string ( sequence ) printf(1, "Value of counter %d\n", counter ) printf(1, "Value of miles %f\n", miles ) printf(1, "Value of name %s\n", {name} ) |
這裏100,1000.0和“John”是分配給 counter,miles 和 name 的變數,並分別賦值。當運行這個程式,這將產生以下結果:
Value of counter 100 Value of miles 1000.000000 Value of name John |
為了防止忘記初始化變數,還因為它可能使代碼更清晰的閱讀,可以結合聲明和賦值:
integer n = 5 |
這相當於:
integer n n = 5 |
識別字範圍:
一個識別字的範圍是哪些代碼可以訪問它的描述。在同一範圍內的識別字代碼可以訪問,而不是在同一範圍內的標識和代碼不能訪問它。
一個變數的範圍取決於在哪里以及它是如何宣佈。
-
如果它是內聲明 for, while, loop 或 switch, 其範圍開始在各自的 end 聲明結束。
-
在if語句的範圍在聲明開始和結束在下一次 else, elsif 或end if 語句結束。
-
如果一個變數被聲明的例行內,變數的作用域開始在例行的最終聲明的聲明和結束。這是知道作為一個私有變數。
-
如果一個變數聲明的外的一個例程,其範圍從上面的聲明和結束項這被稱為一個模組變數被聲明的檔結束。
-
一個恒定(constant)的範圍不具有範圍修飾符劑上面的聲明和結束,開始和結束的檔,它被聲明項。
-
一個枚舉的範圍不具有範圍修飾符劑上面的聲明和結束,開始和結束的檔,它被聲明項
-
開始的所有過程,函數和類型,沒有一個範圍修飾符,範圍在原始檔案中聲明它們的結尾的原始檔案和結束的開始。
常量,枚舉,模組變數,程式,函數和類型,不具有範圍修飾符劑被稱為局部。然而,這些識別字可以有一個範圍修改前的聲明,這導致其範圍超出聲明的項檔。
-
如果關鍵字 global 聲明之前,這些識別字的範圍延伸到整個應用程式。它們可以被訪問代碼中的任意位置的應用程式檔。
-
如果關鍵字public 聲明之前,範圍延伸到的任何檔,該檔明確包括檔的識別字聲明的,或任何檔,其中包括一個檔,公眾包括檔包含公開聲明。
-
如果關鍵字 export 聲明之前,範圍僅延伸到任何檔,直接包含檔的識別字聲明的。
當你有一個Euphoria 檔在另一個檔中,唯一的識別字使用範圍做包括檔訪問修飾符聲明的的。在包含檔中的其他聲明檔做包括不可見。