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 文件在另一個文件中,唯一的標識符使用範圍做包括文件訪問修飾符聲明的的。在包含文件中的其他聲明文件做包括不可見。