变量只不过是我们的程序可以操作的存储区域的名称.它可以包含不同类型的值,包括函数和表.
变量的名称可以由字母,数字和下划线字符组成.它必须以字母或下划线开头.大写和小写字母是不同的,因为Lua区分大小写. Lua和minus中有八种基本类型的值;
在Lua中,虽然我们没有可变数据类型,但我们根据变量的范围有三种类型.
全局变量 : 除非明确声明为本地变量,否则所有变量都被视为全局变量.
局部变量 : 当类型被指定为变量的local时,其范围受限于其范围内的函数.
表字段&minus ;这是一种特殊类型的变量,可以保存除nil之外的任何变量,包括函数.
Lua中的变量定义
变量定义意味着告诉解释器为变量创建存储的位置和数量.变量定义具有可选类型,并包含该类型的一个或多个变量的列表,如下所示 :
type variable_list;
此处,类型可选择为本地或类型,使其成为全局, variable_list 可能包含一个或多个用逗号分隔的标识符名称.一些有效的声明在这里显示 :
local i, jlocal ilocal a,c
local i,j 这两行都声明并定义了变量i和j;它指示解释器创建名为i,j的变量,并将范围限制为本地.
变量可以在其声明中初始化(分配初始值).初始化程序包含一个等号后跟一个常量表达式,如下所示;
type variable_list = value_list;
一些例子是 :
local d , f = 5 ,10 --declaration of d and f as local variables. d , f = 5, 10; --declaration of d and f as global variables. d, f = 10 --[[declaration of d and f as global variables. Here value of f is nil --]]
对于没有初始化程序的定义:具有静态存储持续时间的变量用nil隐式初始化./p>
Lua中的变量声明
正如您在上面的示例中所看到的,多个变量的赋值遵循variable_list和value_list格式.在上面的例子中, local d,f = 5,10 我们在variable_list中有d和f,在值列表中有5和10.
在Lua中赋值将第一个变量放在variable_list中,第一个值放在value_list中,依此类推.因此,d的值为5,f的值为10.
示例
尝试以下示例,其中变量已在顶部,但它们已在主函数内定义和初始化 :
-- Variable definition:local a, b-- Initializationa = 10b = 30print("value of a:", a)print("value of b:", b)-- Swapping of variablesb, a = a, bprint("value of a:", a)print("value of b:", b)f = 70.0/3.0print("value of f", f)
构建并执行上述代码时,会产生以下结果 :
value of a:10value of b:30value of a:30value of b:10value of f23.333333333333
Lua中的Lvalues和Rvalues
Lua和minus中有两种表达式;
左值 : 引用内存位置的表达式称为"左值"表达式.左值可以显示为作业的左侧或右侧.
rvalue : 术语rvalue是指存储在内存中某个地址的数据值.右值是一个不能赋值给它的表达式,这意味着右值可能出现右值,但不能出现在赋值的左侧.
变量是左值,因此可能出现在赋值的左侧.数字文字是右值,因此可能无法分配,也不能出现在左侧.以下是有效的声明 :
g = 20
但是关注不是有效的语句,会产生构建时错误 :
10 = 20
在Lua编程语言中,除了上述类型的赋值之外,在同一个语句中可以有多个左值和右值.它显示如下.
g,l = 20,30
在上面的陈述中,20分配给g,30分配给l.