lua简易教程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Lua脚本语法说明(修订)

Posted on 2006-08-04 11:39 沐枫阅读(3512) 评论(9)编辑收藏引用网摘所属分类: C++

Lua脚本语法说明(增加lua5.1部份特性)

Lua 的语法比较简单,学习起来也比较省力,但功能却并不弱。

所以,我只简单的归纳一下Lua的一些语法规则,使用起来方便好查就可以了。估计看完了,就懂得怎么写Lua

程序了。

在Lua中,一切都是变量,除了关键字。

I. 首先是注释

写一个程序,总是少不了注释的。

在Lua中,你可以使用单行注释和多行注释。

单行注释中,连续两个减号"--"表示注释的开始,一直延续到行末为止。相当于C++语言中的"//"。

多行注释中,由"--[["表示注释开始,并且一直延续到"]]"为止。这种注释相当于C语言中的"/*...*/"。在注释当中,"[["和"]]"是可以嵌套的(在lua5.1中,中括号中间是可以加若干个"="号的,如[==[ ... ]==]),见下面的

字符串表示说明。

II. Lua编程

经典的"Hello world"的程序总是被用来开始介绍一种语言。在Lua中,写一个这样的程序很简单:

print("Hello world")

在Lua中,语句之间可以用分号";"隔开,也可以用空白隔开。一般来说,如果多个语句写在同一行的话,建议总是用分号隔开。

Lua 有好几种程序控制语句,如:

注意一下,for的循环变量总是只作用于for的局部变量;当省略步进值时,for循环会使用1作为步进值。

使用break可以用来中止一个循环。

相对C语言来说,Lua有几个地方是明显不同的,所以面要特别注意一下:

.语句块

语句块在C中是用"{"和"}"括起来的,在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还多了一个"^"。这表示指数乘方运算。比如2^3 结果为8, 2^4结果为16。

连接两个字符串,可以用".."运处符。如:

"This a " .. "string." -- 等于"this a string"

.比较运算

比较符号< > <= >= == ~=

含义小于大于小于或等于大于或等于相等不相等

所有这些操作符总是返回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==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 or b:如果a 为true,则返回a;否则返回b

举几个例子:

print(4and5) --输出 5

print(nil and13) --输出 nil

print(false and13) --输出 false

print(4or5) --输出 4

print(false or5) --输出 5

在Lua中这是很有用的特性,也是比较令人混洧的特性。

我们可以模拟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 else elseif

end false for function if

in local nil not or

repeat return then true until while

IV. 变量类型

怎么确定一个变量是什么类型的呢?大家可以用type()函数来检查。Lua支持的类型有以下几种:

相关文档
最新文档