Lua入门
来源:互联网 发布:淘宝服装拍照多少钱 编辑:程序博客网 时间:2024/05/09 21:21
1,lua简介
Lua 是一个小巧的脚本语言。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。Lua并没有提供强大的库,这是由它的定位决定的。所以Lua不适合作为开发独立应用程序的语言。Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML,Ini等文件格式,并且更容易理解和维护。一个完整的Lua解释器不过200k,在目前所有脚本引擎中,Lua的速度是最快的。这一切都决定了Lua是作为嵌入式脚本的最佳选择。很多应用程序使用LUA作为自己的嵌入式脚本语言,以此来实现可配置性、可扩展性。这其中包括魔兽世界、博德之门、愤怒的小鸟等。
http://www.cnblogs.com/ly4cn/archive/2006/08/04/467550.html
2,lua名言
在Lua中,一切都是变量,除了关键字。
3,lua语法
3.1 注释
3.1.1 单行注释
单行注释中,连续两个减号"--"表示注释的开始,一直延续到行末为止。相当于C++语言中的"//"。
3.1.2 多行注释
多行注释中,由"--[["表示注释开始,并且一直延续到"]]"为止。这种注释相当于C语言中的"/*…*/"。在注释当中,"[["和"]]"是可以嵌套的。
3.2 语句结构
3.2.1 语句分隔
在Lua中,语句之间可以用分号";"隔开,也可以用空白隔开。一般来说,如果多个语句写在同一行的话,建议总是用分号隔开。
3.2.2 语句块
在Lua中,语句块是用do 和 end 括起来的;而在C中是用"{"和"}"括起来的。3.3 控制语句
3.3.1 if语句
3.3.2 while语句
3.3.3 repeat语句
3.3.4 for语句
注意一下,for的循环变量总是只作用于for的局部变量;当省略步进值时,for循环会使用1作为步进值。
使用break可以用来中止一个循环。
使用break可以用来中止一个循环。
3.4 赋值语句
赋值语句在Lua被强化了。它可以同时给多个变量赋值。
在默认情况下,变量总是认为是全局的。假如需要定义局部变量,则在第一次赋值的时候,需要用local说明。
3.5 运算符号
3.5.1 数值运算符号
符号含义+加法-减法*乘法/除法^乘方..字符串拼接,如:"This a " .. "string." -- 等于 "this a string"
3.5.2 比较运算符号
符号含义<小于>大于<=小于等于>=大于等于==等于~=不等于
3.5.3 逻辑运算符号
在Lua中,只有false和nil才计算为false,其它任何数据都计算为true,0也是true!
符号含义anda and b:如果a为false,则返回a;否则返回bora or b:如果 a 为true,则返回a;否则返回bnot非在Lua中这是很有用的特性,也是比较令人混洧的特性。
我们可以模拟C语言中的语句:x = a? b : c,在Lua中,可以写成:x = a and b or c。
最有用的语句是: x = x or v,它相当于:if not x then x = v end 。
我们可以模拟C语言中的语句:x = a? b : c,在Lua中,可以写成:x = a and b or c。
最有用的语句是: x = x or v,它相当于:if not x then x = v end 。
3.6 变量
3.6.1 关键字
关键字是不能做为变量的。
and breakdoelseelseif
end falseforfunctionif
in local nil not or
repeat return then trueuntilwhile
end falseforfunctionif
in local nil not or
repeat return then trueuntilwhile
3.6.2 变量类型
可以用type()函数来检查变量类型。Lua支持的类型有以下几种:
类型说明Nil空值,所有没有使用过的变量,都是nil。nil既是值,又是类型。Boolean布尔值,只有两个有效值:true和falseNumber数值,在Lua里,数值相当于C语言的doubleString字符串,如果你愿意的话,字符串是可以包含"\0"字符的(这和C语言总是以"\0"结尾是不一样的)Table关系表类型,这个类型功能比较强大,请参考后面的内容。Function函数类型,不要怀疑,函数也是一种类型,也就是说,所有的函数,它本身就是一个变量。Userdata这个类型专门用来和Lua的宿主打交道的。
宿主通常是用C和C++来编写的,在这种情况下,Userdata可以是宿主的任意数据类型,常用的有Struct和指针。Thread线程类型,在Lua中没有真正的线程。Lua中可以将一个函数分成几部份运行。
关于字符串String:
宿主通常是用C和C++来编写的,在这种情况下,Userdata可以是宿主的任意数据类型,常用的有Struct和指针。Thread线程类型,在Lua中没有真正的线程。Lua中可以将一个函数分成几部份运行。
关于字符串String:
示例:下面的语句所表示的是完全相同的字符串:
字符串是用双引号或单引号来括起一个字符串的。
关于转义字符。在Lua中,可以用另一种表示方法:用"[["和"]]"将多行的字符串括起来。(lua5.1: 中括号中间可以加入若干个"="号,如 [==[ ... ]==],详见下面示例)。值得注意的是,在这种字符串中,如果含有单独使用的"[["或"]]"就仍然得用""或" "来避免歧义。当然,这种情况是极少会发生的。
关于关系表类型Table:
关系表类型,这是一个很强大的类型。我们可以把这个类型看作是一个数组。只是C语言的数组,只能用正整数来作索引;在Lua中,你可以用任意类型来作数组的索引,除了nil。同样,在C语言中,数组的内容只允许一种类型;在Lua中,你也可以用任意类型的值来作数组的内容,除了nil。
Table的定义很简单,它的主要特征是用"{"和"}"来括起一系列数据元素的。
函数也是变量类型吗?上面的函数定义,其实相当于:
返回多个值:
0 0
- Lua入门
- Lua入门
- Lua入门
- Lua入门
- Lua入门
- Lua入门
- Lua入门
- lua 入门
- Lua入门
- Lua入门
- lua 入门
- lua入门
- 【Lua】入门
- Lua 入门
- Lua入门
- Lua 入门
- Lua入门
- [cocos2dx lua]cocos2dx lua入门
- linux-usart串口的使用记录
- 如何简单便捷的搭建一个网站 - 基于Django
- 灰尘导致镜头图像变形
- (4.6.22.1)来吧,是时候撸一份自己的RxJava框架啦:观察者模式实现链式调用
- HTML H5 ISO-8859-1 ASCII实体转义字符集
- Lua入门
- 如何成为一名优秀的CTO(首席技术官)
- 结构体数组处理员工工资
- Excel工作中容易被忽略的实用技巧
- iOS-申请邓白氏编码的超详细流程介绍
- PM,RD是啥意思
- Ajax跨域访问Tomcat服务器
- test
- 第十一节,Set和Map数据结构