资源描述:
《lua基本语法.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、在这篇文章中,我想向大家介绍如何进行Lua程序设计。我假设大家都学过至少一门编程语言,比如Basic或C,特别是C。因为Lua的最大用途是在宿主程序中作为脚本使用的。 Lua的语法比较简单,学习起来也比较省力,但功能却并不弱。 在Lua中,一切都是变量,除了关键字。请记住这句话。I. 首先是注释 写一个程序,总是少不了注释的。 在Lua中,你可以使用单行注释和多行注释。 单行注释中,连续两个减号"--"表示注释的开始,一直延续到行末为止。相当于C++语言中的"//"。 多行注释中,由"--[["表示注释开始,并且一直延续到"]]"为止。这种注释相当于C语言
2、中的"/*…*/"。在注释当中,"[["和"]]"是可以嵌套的。II. Lua编程 经典的"Helloworld"的程序总是被用来开始介绍一种语言。在Lua中,写一个这样的程序很简单: print("Helloworld") 在Lua中,语句之间可以用分号";"隔开,也可以用空白隔开。一般来说,如果多个语句写在同一行的话,建议总是用分号隔开。 Lua有好几种程序控制语句,如: 条件控制:if条件then…elseif条件then…else…end While循环:while条件do…end Repeat循环:repeat…until条件 For循环:f
3、or变量=初值,终点值,步进do…end For循环:for变量1,变量2,…,变量Nin表或枚举函数do…end 注意一下,for的循环变量总是只作用于for的局部变量,你也可以省略步进值,这时候,for循环会使用1作为步进值。 你可以用break来中止一个循环。 如果你有程序设计的基础,比如你学过Basic,C之类的,你会觉得Lua也不难。但Lua有几个地方是明显不同于这些程序设计语言的,所以请特别注意。 .语句块 语句块在C++中是用"{"和"}"括起来的,在Lua中,它是用do和end括起来的。比如: doprint("Hello")end
4、 你可以在函数中和语句块中定局部变量。 .赋值语句 赋值语句在Lua被强化了。它可以同时给多个变量赋值。 例如: a,b,c,d=1,2,3,4 甚至是: a,b=b,a --多么方便的交换变量功能啊。 在默认情况下,变量总是认为是全局的。假如你要定义局部变量,则在第一次赋值的时候,需要用local说明。比如: locala,b,c=1,2,3 --a,b,c都是局部变量 .数值运算 和C语言一样,支持+,-,*,/。但Lua还多了一个"^"。这表示指数乘方运算。比如2^3结果为8,2^4结果为16。
5、连接两个字符串,可以用".."运处符。如: "Thisa".."string."--等于"thisastring" .比较运算 <><=>===~= 分别表示小于,大于,不大于,不小于,相等,不相等 所有这些操作符总是返回true或false。 对于Table,Function和Userdata类型的数据,只有==和~=可以用。相等表示两个变量引用的是同一个数据。比如: a={1,2} b=a print(a==b,a~=b) --true,false a={1,2} b={1,2} print(a=
6、=b,a~=b) --false,true .逻辑运算 and,or,not 其中,and和or与C语言区别特别大。 在这里,请先记住,在Lua中,只有false和nil才计算为false,其它任何数据都计算为true,0也是true! and和or的运算结果不是true和false,而是和它的两个操作数相关。 aandb:如果a为false,则返回a;否则返回b aorb:如果a为true,则返回a;否则返回b 举几个例子: print(4and5)-->5 print(niland13)-->nil p
7、rint(falseand13)-->false print(4or5)-->4 print(falseor5)-->5 在Lua中这是很有用的特性,也是比较令人混洧的特性。 我们可以模拟C语言中的语句:x=a?b:c,在Lua中,可以写成:x=aandborc。 最有用的语句是:x=xorv,它相当于:ifnotxthenx=vend。 .运算符优先级,从高到低顺序如下: ^ not-(一元运算) */ +- ..(字符串连接) <><=>=~=== and