开发手册 欢迎您!
软件开发者资料库

Lua - 变量

Lua变量 - 从简单和简单的步骤学习Lua编程语言,从基本到高级概念,包括概述,环境设置,基本语法,变量,数据类型,运算符,循环,决策,函数,字符串,数组,迭代器,表,模块,Metatables,协同程序,文件I / O,错误处理,调试,垃圾收集,面向对象,Web编程,数据库访问,游戏编程及其标准库。

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

变量的名称可以由字母,数字和下划线字符组成.它必须以字母或下划线开头.大写和小写字母是不同的,因为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.