lua学习(2)_____lua的注释和全局变量、局部变量

原创 2016年08月31日 21:03:13

经过上节的介绍想必大家已经成功运行过lua代码了。

下面我们真正的来接触lua基本语法了。



1.注释语法

Lua语言有自己独特的注释语法,同样分为行注释和块注释。


行注释:和C语言很像,以--开头,那么这行之后的字符会被当做注释处理。(--等同于c语言的//)



块注释:以--[[ 开头,以 ]] 结尾,在这之间的所有字符(可以跨多行)会被当做注释处理(-[[等同于c语言的/*,]]等同于*/)。


值得注意的是:在上面注释块最后一行是以--]]结尾而不是]]。

这并不是语法要求,而是一种技巧。

在编程中,我们经常会将某一段代码注释后调试代码,然后取消注释。在C语言中,添加注释块是/*  CODE  */ 但是取消注释需要手动删除注释头,注释尾。

然而在lua中,使用--[[ 和 --]] 结尾。取消注释只需要在注释头前再添加一个 - 。例如:


是不是lua的注释要方便了许多呢?

你以为以上内容注释就说就完了么?那看来你的脑子转得不够快,你考虑到这个问题没有:假如注释内容中出现了]]怎么办?


原意是想将那两行代码都注释掉,可是由于第一行代码出现了]]导致提前遇到注释尾。所以b=1这句代码并没有被注释掉。

对于这个问题,在Lua5.1中提供了一个解决办法:


以上代码仅仅是为了举例,并没有什么实际的含义。



2.全局变量、局部变量

如果还有人不明白什么是全局变量,什么是局部变量的请看下面这段话,如果是老司机已经知道的可以直接跳过这段

全局变量是指:这个变量在没有被同名局部变量覆盖的时候,所有代码块都是可见的。

局部变量是指:该变量只在被申明的代码块中可见,并且可以覆盖同名全局变量或者外层局部变量。

可以看下这个例子:


输出为:



那么在Lua中全局变量,局部变量有什么特殊的地方呢?


在Lua中,全局变量是不需要声明的,也就是说在某个代码块没有对x变量进行局部声明的情况下,使用x那么表示的就是x为全局变量。

而如果要在某个代码块中使用局部变量x需要声明: local x = value ,local关键字表示局部。


版权声明:本文为博主原创文章,未经博主允许不得转载。

遍历Lua全局环境变量

Lua全局变量 Lua解释器提供了很多全局变量,比如print等,便于程序开发。Lua提供的所有全局变量都保存在一个普通的表_G中。目前Lua-5.2.1中_G中的全局变量主要有“字符串”、“函数”...
  • luyafei_89430
  • luyafei_89430
  • 2014年11月04日 13:22
  • 2994

Lua Module对全局变量访问

2008年12月9日今天下午调试程序的时候,遇到了一件非常奇怪的事。弄清楚了之后,才发现原来是Lua中Module中自有环境的问题。大体情况是这样的,我在主程序中设定的全局变量,在模块文件中可以访问到...
  • xenyinzen
  • xenyinzen
  • 2008年12月09日 20:49
  • 12415

Lua神奇之旅~~lua中的变量

对于脚本语言lua,它采用的是自动内存管理机制,所以使用时无需考虑内存的释放和分配,直接用即可 他的变量类型为以下8种: nil  nil是一种特殊的类型,它只有一个值nil , 主要功能就是为了区别...
  • qq_30168505
  • qq_30168505
  • 2016年10月07日 23:25
  • 1383

Lua编程笔录--Lua初识及语法一(注释,变量命名,全局/局部变量,数据类型)

前言:Lua在开发中有时是必不可少的,从今天以后就跟着我的脚步来一点点学习Lua吧,如果不懂什么是Lua的话那就自行百度吧 1:准备资料       Lua编辑器: https://github....
  • AdamBieber
  • AdamBieber
  • 2016年11月21日 17:31
  • 839

深入理解Lua的全局变量_G以及源码实现

在Lua脚本层,Lua将所有的全局变量保存在一个常规的table中,这个table被称为全局环境,并且将这个table保存在一个全局变量_G中,文章首先通过一个递归函数,打印出_G中所有的信息,然后说...
  • MaximusZhou
  • MaximusZhou
  • 2014年04月19日 13:53
  • 7768

5.1之前, 全局变量存储在_G这个table中, 这样的操作:5.3 lua_setupvalue

5.1之前, 全局变量存储在_G这个table中, 这样的操作: a = 1  相当于: _G['a'] = 1 但在5.2之后, 引入了_ENV叫做环境,与_G全局变量表产生了一些混淆,...
  • linuxheik
  • linuxheik
  • 2016年12月06日 23:11
  • 687

lua语言的几点技巧

lua语言特性
  • xiongyk
  • xiongyk
  • 2016年07月20日 22:22
  • 424

Lua 语言 15 分钟快速入门(转)

转载:http://www.oschina.net/translate/learn-lua-in-15-minutes -- 两个横线开始单行的注释 --[[ 加上两个[和]表示 ...
  • bine_
  • bine_
  • 2015年07月21日 19:42
  • 1142

深入理解Lua的全局变量_G以及源码实现

原文   http://blog.csdn.net/maximuszhou/article/details/24105673 主题 Lua 注册表        在Lua脚本...
  • W_han__
  • W_han__
  • 2016年10月24日 20:16
  • 1296

lua防止访问不存在的全局变量

当访问lua中不存在的全局变量时并不会报错,而是返回nil值。在我们开发的时候稍微不注意写错了变量名,程序并不会报错,类似于下面这种情况。 test = 1 print(tets) 为了防止这种情...
  • wxc237786026
  • wxc237786026
  • 2016年06月15日 22:54
  • 905
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:lua学习(2)_____lua的注释和全局变量、局部变量
举报原因:
原因补充:

(最多只允许输入30个字)