2022年lua简易教程 .pdf
《2022年lua简易教程 .pdf》由会员分享,可在线阅读,更多相关《2022年lua简易教程 .pdf(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Lua脚本语法说明(修订)Posted on 2006-08-04 11:39 沐枫阅读 (3512) 评论 (9)编辑 收藏引用网摘 所属分类 : C+Lua 脚本语法说明(增加lua5.1部份特性)Lua 的语法比较简单,学习起来也比较省力,但功能却并不弱。所以,我只简单的归纳一下Lua 的一些语法规则,使用起来方便好查就可以了。估计看完了,就懂得怎么写Lua程序了。在 Lua 中,一切都是变量,除了关键字。I. 首先是注释写一个程序,总是少不了注释的。在 Lua 中,你可以使用单行注释和多行注释。单行注释中,连续两个减号- 表示注释的开始,一直延续到行末为止。相当于C+ 语言中的 / 。
2、多行注释中,由 -表示注释开始,并且一直延续到 为止。这种注释相当于C 语言中的 /*.*/。在注释当中,和 是可以嵌套的( 在 lua5.1中,中括号中间是可以加若干个= 号的,如= . =),见下面的字符串表示说明。II. Lua 编程经典的 Hello world的程序总是被用来开始介绍一种语言。在Lua 中,写一个这样的程序很简单:print(Hello world) 在 Lua 中,语句之间可以用分号;隔开,也可以用空白隔开。一般来说,如果多个语句写在同一行的话,建议总是用分号隔开。Lua 有好几种程序控制语句,如:控制语句格式示例I fif 条件 then . elseif 条件
3、then . else . endif 1+1=2 then print(true) elseif 1+2=3 then print(true) else print(false) endWhile while 条件 do . endwhile 1+1=2 do print(true) end名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 11 页 - - - - - - - - - Repeat repeat . until 条件repeatprint (Hello)
4、until1+ 1= 2For for 变量 = 初值 , 终点值 , 步进 do . endfor i = 1, 10, 2 do print(i) endFor for 变量 1 , 变量 2 , . 变量 n in 表或枚举函数 do . endfor a,b in mylist do print (a, b) end注意一下, for 的循环变量总是只作用于for 的局部变量;当省略步进值时,for 循环会使用 1 作为步进值。使用 break可以用来中止一个循环。相对 C 语言来说, Lua 有几个地方是明显不同的,所以面要特别注意一下:语句块语句块在 C 中是用 和 括起来的,在
5、Lua 中,它是用 do 和 end 括起来的。比如:do print(Hello) end 可以在 函数 中和 语句块中定局部变量。赋值语句赋值语句在 Lua 被强化了。它可以同时给多个变量赋值。例如:a,b,c,d=1,2,3,4 甚至是:a,b=b,a - 多么方便的交换变量功能啊。在默认情况下,变量总是认为是全局的。假如需要定义局部变量,则在第一次赋值的时候,需要用 local 说明。比如:local a,b,c = 1,2,3 - a,b,c都是局部变量数值运算和 C 语言一样,支持+, -, *, /。但 Lua 还多了一个 。这表示指数乘方运算。比如23 结果为 8, 24结果为
6、 16 。连接两个字符串,可以用. 运处符。如:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 11 页 - - - - - - - - - This a . string. - 等于 this a string 比较运算比较符号 = = = 含义小于大于小于或等于大于或等于相等不相等所有这些操作符总是返回true 或 false 。对于 Table ,Function和 Userdat a 类型的数据,只有= 和 =可以用。相等表示两个变量引用的是同一个数据。比如:a
7、= 1, 2 b= a print (a = b, a = b) - 输出 true, false a = 1, 2 b= 1 ,2 print (a = b, a = b) - 输出 false, true 逻辑运算and, or, not 其中,and 和 or 与 C 语言区别特别大。在这里,请先记住, 在 Lua 中,只有 false 和 nil 才计算为 false ,其它任何数据都计算为true ,0 也是 true !and 和 or 的运算结果不是true 和 false ,而是和它的两个操作数相关。a and b :如果 a 为 false ,则返回 a;否则返回 b a o
8、r b :如果 a 为 true ,则返回 a;否则返回 b 举几个例子:print ( 4 and5) - 输出 5 print (nil and13 ) - 输出 nil print (false and 13 ) - 输出 false 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 11 页 - - - - - - - - - print ( 4 or 5) - 输出 4 print (false or 5 ) - 输出 5 在 Lua 中这是很有用的特性,也是比较
9、令人混洧的特性。我们可以模拟 C 语言中的语句: x = a? b : c,在 Lua 中,可以写成: x = a and b or c。最有用的语句是:x = x or v,它相当于: if not x then x = v end 。运算符优先级,从低到高顺序如下: or and = = = . (字符串连接 ) + - * / % not #( lua5.1取长度运算 ) - (一元运算 ) 和 C 语言一样,括号可以改变优先级。III. 关键字关键字是不能做为变量的。Lua 的关键字不多,就以下几个:and break do els e els eifend fals e for fu
10、nc tion if in loc al nil not or repeat return then true until while IV. 变量类型怎么确定一个变量是什么类型的呢?大家可以用type() 函数来检查。 Lua 支持的类型有以下几种:N il 空值,所有没有使用过的变量,都是nil 。nil 既是值,又是类型。Boolean 布尔值,只有两个有效值:true和 fals e N umber 数值,在Lua 里,数值相当于C 语言的 double String 字符串,如果你愿意的话,字符串是可以包含0 字符的(这和 C 语言总是以 0 结尾是不一样的)名师资料总结 - - -
11、精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 11 页 - - - - - - - - - Table 关系表类型,这个类型功能比较强大,请参考后面的内容。Func tion 函数类型,不要怀疑,函数也是一种类型,也就是说,所有的函数,它本身就是一个变量。Userdata 嗯,这个类型专门用来和Lua的宿主打交道的。宿主通常是用C 和 C + 来编写的,在这种情况下,U serdata可以是宿主的任意数据类型,常用的T hread 线程类型,在Lua中没有真正的线程。Lua中可以将一个函数分成
12、几部份运行。如果感兴趣的话,可以去看看Lua的文档。现在回过头来看看,倒觉得不是线程类型。反而象是用来做遍历的,象是I terator函数。如:function range(n) local i = 0 while (i n) do coroutine.yield( i ) i = i + 1 endend可惜的是要继续运行,需要c oroutine.resume函数,有点鸡肋。请指教。V. 变量的定义所有的语言, 都要用到变量。在Lua 中,不管在什么地方使用变量,都不需要声明,并且所有的这些变量总是全局变量,除非我们在前面加上local 。这一点要特别注意,因为我们可能想在函数里使用局部变
13、量,却忘了用local 来说明。至于变量名字,它是大小写相关的。也就是说,A 和 a 是两个不同的变量。定义一个变量的方法就是赋值。操作就是用来赋值的我们一起来定义几种常用类型的变量吧。A. Nil 正如前面所说的,没有使用过的变量的值,都是Nil 。有时候我们也需要将一个变量清除,这时候,我们可以直接给变量赋以nil 值。如:var1 = nil - 请注意 nil 一定要小写B. Boolean 布尔值通常是用在进行条件判断的时候。布尔值有两种:true 和 false 。在 Lua 中,只有 false 和 nil 才被计算为 false ,而所有任何其它类型的值,都是true 。比如
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年lua简易教程 2022 lua 简易 教程
限制150内