- Euphoria Tutorial
- Euphoria - Home
- Euphoria - Overview
- Euphoria - Environment
- Euphoria - Basic Syntax
- Euphoria - Variables
- Euphoria - Constants
- Euphoria - Data Types
- Euphoria - Operators
- Euphoria - Branching
- Euphoria - Loop Types
- Euphoria - Flow Control
- Euphoria - Short Circuit
- Euphoria - Sequences
- Euphoria - Date & Time
- Euphoria - Procedures
- Euphoria - Functions
- Euphoria - Files I/O
- Euphoria Useful Resources
- Euphoria - Quick Guide
- Euphoria - Library Routines
- Euphoria - Useful Resources
- Euphoria - Discussion
欣快感 - 变量
变量只不过是用于存储值的保留内存位置。这意味着当您创建变量时,您会在内存中保留一些空间。
根据变量的数据类型,解释器分配内存并决定可以在保留内存中存储什么。因此,通过为变量分配不同的数据类型,您可以在这些变量中存储整数、小数或字符。Euphoria 数据类型在不同的章节中进行了解释。
这些内存位置称为变量,因为它们的值在其生命周期内可以更改。
变量声明
Euphoria 变量必须显式声明以保留内存空间。因此,在为变量赋值之前必须先声明变量。
变量声明有一个类型名称,后跟所声明的变量列表。例如 -
integer x, y, z sequence a, b, x
声明变量时,您可以为该变量命名,并定义在程序执行期间可以合法地将哪种值分配给该变量。
声明变量的简单Behave不会为其分配任何值。如果您在给它赋值之前尝试读取它,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中声明的,则其作用域从声明开始,到相应的结束语句结束。
在if语句中,作用域从声明开始,到下一个else、elsif或end if语句结束。
如果在例程中声明变量,则变量的范围从声明开始,到例程的结束语句结束。这被称为私有变量。
如果变量是在例程外部声明的,则其作用域从声明处开始,到声明它的文件末尾结束。这称为模块变量。
没有作用域修饰符的常量的作用域从声明开始,到声明它的文件末尾结束。
没有范围修饰符的枚举的范围从声明开始,到声明它的文件末尾结束。
所有没有作用域修饰符的过程、函数和类型的作用域从源文件的开头开始,到声明它们的源文件的末尾结束。
没有作用域修饰符的常量、枚举、模块变量、过程、函数和类型被称为局部变量。但是,这些标识符可以在其声明之前有一个作用域修饰符,这会导致它们的作用域扩展到声明它们的文件之外。
如果关键字global位于声明之前,则这些标识符的范围将扩展到整个应用程序。可以通过应用程序文件中任何位置的代码访问它们。
如果关键字public在声明之前,则范围将扩展到任何显式包含声明标识符的文件的文件,或任何包含public包含包含公共声明的文件的文件的文件。
如果关键字export位于声明之前,则范围仅扩展到直接包含声明标识符的文件的任何文件。
当您在另一个文件中包含Euphoria 文件时,执行include 的文件只能访问使用范围修饰符声明的标识符。包含文件中的其他声明对于执行include的文件是不可见的。