详解Lua中的变量相关知识点

变量不过是存储到区域项目可以操作的名称。它可以容纳不同类型的值,包括函数和表格。

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

在Lua,尽管我们没有变量的数据类型,我们基于该变量范围的三种类型。

  • 全局变量:所有的变量默是全局除非显式地声明为局部。
  • 局部变量:当类型被指定为局部的一个变量,它的范围是有限的在自己的范围内使用。
  • 表字段:这是一种特殊类型的变量,可以除了nil,包括功能不放任何东西。

在Lua变量定义:

定义一个变量意味着告诉解释器在哪里和多少创建存储的变量。变量的定义有一个可选的类型和包含该类型,如下一个或多个变量的列表:

代码如下:

type variable_list;

在这里,类型是可选局部或nor型指定使其全局,variable_list可能包含由逗号分隔的一个或多个标识符名称。一些有效的声明是如下所示:

代码如下:

local    i, j
local    i
local    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。
在Lua声明变量:

正如上面的例子中看到,分配多个变量遵循variable_list和值表格式。在上面的例子中local d , f = 5 ,10,d和f中的值列表variable_list为5和10。

在Lua值设定发生像variable_list在第一个值和第一个变量值表等等。因此d 的值是5和f的值是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有两种表达式:

  1. 左值:是指一个内存位置的表达式被称为“左值”的表达式。左值可能会出现无论是左边或右侧。
  2. 右值:术语右值指的是存储在内存中某个地址的数据值。右值是不能分配给它的值,这意味着一个右值可能会出现在赋值的右侧而不是左侧的表达式。

变量是左值,因此可能会出现在赋值左侧。数字文本是右值,因此可能无法分配的,不能出现在左侧。下面是一个有效的声明:

代码如下:

g = 20

但是,下面不是一个有效的声明,并会产生编译时错误:

代码如下:

10 = 20

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

代码如下:

g,l = 20,30

在上面的语句中,20被分配给g和30被分配到l。

(0)

相关推荐

  • Lua中的变量和流控制入门学习

    复制代码 代码如下: num = 42  -- 所有的数字都是double. -- 别担心,double的64位中有52位用于 -- 保存精确的int值; 对于需要52位以内的int值, -- 机器的精度不是问题. 复制代码 代码如下: s = 'walternate'  -- 像Python那样的不可变的字符串. t = "双引号也可以" u = [[ 两个方括号        用于        多行的字符串.]] t = nil  -- 未定义的t; Lua 支持垃圾收集. 复制

  • Lua中全局变量与非全局环境介绍

    今天来聊两个话题--全局变量和非全局环境. 正如大家目前心里所感受到的,全局变量的内容很简单,而非全局环境的内容就稍微要锻炼一下脑细胞了. 1.全局变量的原形 在Lua中,要声明全局变量很简单,那就是定义变量的时候,前面不要加上local. 这个神秘的全局变量,其实本质上也是一个table,它把我们创建的全局变量都保存到一个table里了. 而这个table的名字是:_G   我们来看看代码: 复制代码 代码如下: -- 定义一个全局变量     gName = "哎哟,很挫哦";  

  • 详解Lua中的变量相关知识点

    变量不过是存储到区域项目可以操作的名称.它可以容纳不同类型的值,包括函数和表格. 变量名可以由字母,数字和下划线.它必须以字母或下划线.大写和小写字母是不同的,因为Lua是区分大小写的.有八种基本类型值在Lua中: 在Lua,尽管我们没有变量的数据类型,我们基于该变量范围的三种类型. 全局变量:所有的变量默是全局除非显式地声明为局部. 局部变量:当类型被指定为局部的一个变量,它的范围是有限的在自己的范围内使用. 表字段:这是一种特殊类型的变量,可以除了nil,包括功能不放任何东西. 在Lua变量

  • 详解JavaScript中的变量命名规范

    目录 驼峰命名 根据变量类型来命名 普通变量/属性 布尔变量/属性 普通函数/方法 回调.钩子函数 类 注意一致性 介词一致性 顺序一致性 表里一致性 时间一致性 其他注意事项 避免使用不常用的缩写 避免使用容易混淆的字母和数字 避免变量命名过于抽象 驼峰命名 首先,和其他语言一样,大部分变量建议采用驼峰命名法. var articleTitle = 'javascript变量命名规范' 而对于常量,使用大写字母和下划线来组合命名. const COUNTRY_NAME = 'China' 根据

  • 详解Kotlin中的变量和方法

    详解Kotlin中的变量和方法 变量 Kotlin 有两个关键字定义变量:var 和 val, 变量的类型在后面. var 定义的是可变变量,变量可以被重复赋值.val 定义的是只读变量,相当于java的final变量. 变量的类型,如果可以根据赋值推测,可以省略. var name: String = "jason" name = "jame" val max = 10 常量 Java 定义常量用关键字 static final, Kotlin 没有static,

  • 详解Lua中的数据类型

    Lua是动态类型语言,所以变量没有类型,仅值有类型.值可以被存储在变量中,作为参数传递,并作为结果返回. 在Lua中虽然我们没有变量的数据类型,但我们有类型的值.用于数值数据类型的列表在下面给出.  函数类型 在Lua中有一个叫做函数类型,使我们能够知道变量的类型.如下一些例子给出了下面的代码. 复制代码 代码如下: print(type("What is my type"))   --> string t=10 print(type(5.8*t))              

  • 详解Lua中的数组概念知识

    数组是有序的对象的装置,它可以是包含含有多个行和列的行或多维阵列的集合的单个二维数组. 在Lua中,数组是使用索引表与整数实现的.数组的大小是不固定的,它可以增长基于我们需要受存储器限制. 一维数组 一维数组可以用一个简单的表结构来表示,可以初始化,使用一个简单的for循环读取.如下例子所示. 复制代码 代码如下: array = {"Lua", "Tutorial"} for i= 0, 2 do    print(array[i]) end 当我们运行上面的代码

  • 详解Python中的变量及其命名和打印

    在程序中,变量就是一个名称,让我们更加方便记忆. cars = 100 space_in_a_car = 4.0 drivers = 30 passengers = 90 cars_not_driven = cars - drivers cars_driven = drivers carpool_capacity = cars_driven * space_in_a_car average_passengers_per_car = passengers / cars_driven print "

  • 详解Lua中的表的概念及其相关操作方法

    表格是唯一的数据结构中Lua可以帮助我们创造出不同的类型,如数组和字典. Lua使用关联数组和可不仅数字,但也有不同的零字符串索引.表格都没有固定的大小,并根据需要可以增长. Lua采用的所有陈述,包括包装的代表性表.当我们访问一个方法的字符串.格式,这意味着,我们正在访问的格式化功能的字符串封装. 表示和用法 表称为对象和它们既不值,也没有变. Lua使用构造函数表达式{}创建一个空表.它是要知道,有保存表的参考和表本身的变量之间没有固定的关系. 复制代码 代码如下: --sample tab

  • 详解Lua中的元表概念

    元表是一个表,有助于改变它连接到一个密钥集和相关的元方法的帮助下表的行为.这些元方法是强大的lua功能,如: 更改/添加功能,以运算符表 查看metatables当钥匙不在使用__index元表中的表可用. 有迹象表明,在处理metatables其中包括使用了两种重要的方法, setmetatable(table,metatable): 这个方法是用来设置元表的一个表. getmetatable(table): 此方法用于获取表的元表. 让我们先来看看如何设置一个表作为另一个元表.它如下所示.

  • 详解Lua中if ... else语句的使用方法

    if 语句后面可以跟一个可选的else语句,当布尔表达式为假该语句执行. 语法 在Lua编程语言中的if ... else语句的语法是: 复制代码 代码如下: if(boolean_expression) then    --[ statement(s) will execute if the boolean expression is true --] else    --[ statement(s) will execute if the boolean expression is fals

  • 详解Lua中的while循环语句的使用

    在Lua编程语言中的while循环语句,只要给定的条件为真时将重复执行的目标语句. 语法 Lua编程语言中的while循环的语法是: 复制代码 代码如下: while(condition) do    statement(s) end 在这里,声明(S)可以是单一语句或语句块.该条件可以是任何表达式,并且真正是任意非零值.循环迭代当条件是true. 当条件为假,则程序控制进到紧接在循环之后的一行. 流程图: 这里,在while循环的关键点是,在循环可能不会永远运行.当条件测试结果为false,循

随机推荐