Lua变量

变量是程序可以操作的存储区域的名称。 它可以包含不同类型的值,包括函数和表。

变量的名称可以由字母,数字和下划线字符组成。 它必须以字母或下划线开头。 大写和小写字母是不同的,因为Lua区分大小写。Lua中有八种基本类型的值。

在Lua中,虽然没有可变数据类型,但根据变量的范围有三种类型。

  • 全局变量 - 所有变量都被视为全局变量,除非明确声明为局部变量。
  • 局部变量 - 当为变量指定类型为local时,其范围受函数范围限制。
  • 表字段 - 这是一种特殊类型的变量,可以保存除nil之外的任何内容,包括函数。

Lua变量定义

变量定义告诉解释器为变量创建存储的位置和数量。 变量定义具有可选类型,并包含该类型的一个或多个变量的列表,如下所示 -

type variable_list;

这里,type是可选的本地或全局类型,而variable_list可以包含一个或多个由逗号分隔的标识符名称。 这里显示了一些有效的声明 -

local    i, j
local    i
local    a,c

local i,j都声明并定义变量ij; 它指示解释器创建名为ij的变量,并将范围限制为局部。

变量可以在声明中初始化(分配初始值)。 初始化程序包含一个等号,后跟一个常量表达式,如下所示 -

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隐式初始化。

Lua变量声明

正如在上面的示例中所看到的,多个变量的赋值遵循variable_listvalue_list格式。 在上面的例子中,local d , f = 5 ,10variable_list中就是df,在value_list中就是510

Lua中的值赋值类似于variable_list中的第一个变量,value_list中的第一个值,依此类推。 因此,d的值为5f的值为10

示例

看看以下示例,其中变量已在顶部声明,但它们已在主函数内定义和初始化 -

-- Variable definition:
local a, b

-- Initialization
a = 10
b = 30

print("value of a:", a)

print("value of b:", b)

-- Swapping of variables
b, a = a, b

print("value of a:", a)

print("value of b:", b)

f = 70.0/3.0
print("value of f", f)

构建并执行上述代码时,会产生以下结果 -

value of a:    10
value of b:    30
value of a:    30
value of b:    10
value of f    23.333333333333

Lua 左值和右值

Lua中有两种表达方式 -

  • 左值 - 引用内存位置的表达式称为“左值”表达式。 左值可以显示为赋值的左侧或右侧。
  • 右值 - 术语右值是指存储在内存中某个地址的数据值。 右值是一个不能赋值的表达式,所以右值可能出现在右侧,但不会出现在赋值的左侧。

变量是左值,因此可能出现在赋值的左侧。 数字文字是右值,因此可能无法分配,也不能出现在左侧。 以下是有效的声明 -

g = 20

但是以下不是有效的语句,会产生构建时错误 -

10 = 20

在Lua编程语言中,除了上述类型的赋值之外,在同一个语句中可以有多个左值和右值。 如下所示。

g,l = 20,30

在上面的语句中,20分配给变量g30分配给变量l


上一篇:Lua基础语法

下一篇:Lua数据类型

关注微信小程序
程序员编程王-随时随地学编程

扫描二维码
程序员编程王

扫一扫关注最新编程教程