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

 更新时间:2015年05月27日 11:53:14   投稿:goldensun  
这篇文章主要介绍了Lua中的变量相关知识点,是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。

相关文章

  • Lua学习笔记之函数、变长参数、closure(闭包)、select等

    Lua学习笔记之函数、变长参数、closure(闭包)、select等

    这篇文章主要介绍了Lua学习笔记之函数、变长参数、closure(闭包)、select等,本文着重讲解了这些特性的用法,并给出代码实例,需要的朋友可以参考下
    2015-04-04
  • Lua中字符串(string)浅析

    Lua中字符串(string)浅析

    这篇文章主要介绍了Lua中字符串(string)浅析,本文讲解了字符串的声明、连接、简单的使用方法等,是一篇入门教程,需要的朋友可以参考下
    2014-09-09
  • Lua下基本的网络编程示例

    Lua下基本的网络编程示例

    这篇文章主要介绍了Lua下基本的网络编程示例,包括简单的服务器的搭建和相关web组件的介绍等,需要的朋友可以参考下
    2015-05-05
  • Lua中创建全局变量的小技巧(禁止未预期的全局变量)

    Lua中创建全局变量的小技巧(禁止未预期的全局变量)

    这篇文章主要介绍了Lua中创建全局变量的小技巧(禁止未预期的全局变量),使用本文方法可以实现避免创建全局变量,在必须使用全局变量的情况下也给出了实现技巧,需要的朋友可以参考下
    2014-12-12
  • Lua教程(九):元表与元方法详解

    Lua教程(九):元表与元方法详解

    这篇文章主要介绍了Lua教程(九):元表与元方法详解,本文讲解了算术类的元方法、关系类的元方法、库定义的元方法、table访问的元方法等内容,需要的朋友可以参考下
    2015-04-04
  • Lua中table的遍历详解

    Lua中table的遍历详解

    这篇文章主要介绍了Lua中table的遍历详解,本文讲解了4种遍历方法,并详细分析了这4种方法的特点、使用环境、相关知识等,需要的朋友可以参考下
    2015-04-04
  • Lua table中安全移除元素的方法

    Lua table中安全移除元素的方法

    这篇文章主要介绍了Lua table中安全移除元素的方法,本文给出3种实现方法,分别是从后往前删除和while删除,需要的朋友可以参考下
    2015-06-06
  • Lua中pairs与ipairs的区别总结

    Lua中pairs与ipairs的区别总结

    这篇文章主要给大家介绍了关于Lua中pairs与ipairs区别的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧
    2018-09-09
  • lua操作excel方法分享

    lua操作excel方法分享

    这篇文章主要介绍了lua操作excel方法分享,在网上几乎没有找到像样的示例资料,所以自己写了份,推荐给大家。
    2015-03-03
  • Lua面向对象之类和继承

    Lua面向对象之类和继承

    这篇文章主要介绍了Lua面向对象之类和继承,本文讲解了Lua面向对象最基本的知识类和继承,需要的朋友可以参考下
    2014-09-09

最新评论