Euphoria變數


變數是什麼,但保留記憶體來儲存值。這意味著,當建立一個變數在記憶體中保留一些空間。

一個變數的資料型別的基礎上,直譯器分配記憶體,並決定什麼可以被儲存在保留的記憶體。因此,你可以通過不同的資料型別分配給變數,這些變數儲存整數,小數,或字元。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 檔案在另一個檔案中,唯一的識別符號使用範圍做包括檔案存取修飾符宣告的的。在包含檔案中的其他宣告檔案做包括不可見。