变量是什么,但保留记忆体来储存值。这意味着,当创建一个变量在内存中保留一些空间。
一个变量的数据类型的基础上,解释器分配内存,并决定什么可以被存储在保留的内存。因此,你可以通过不同的数据类型分配给变量,这些变量存储整数,小数,或字符。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 文件在另一个文件中,唯一的标识符使用范围做包括文件访问修饰符声明的的。在包含文件中的其他声明文件做包括不可见。