lua
1.注释
单行注释:--
段落注释:--[[ ###### ]] (lua5.1中,中括号中间是可以加若干个“ = ”,eg:[==[ ... ]==])
2.控制语句
if条件then...else..end
while条件do...end
for 变量do...end
for a,b in mylist do print(a,b) end
3.语句块
语句块在C中使用{},在lua中,用do和end括起来 eg:do print("hello") end
4.赋值语句
默认情况下,变量总是认为是全局的,假如需要定义局部变量,则在第一次赋值的时候,需要用local说明,eg:local a = 1 --a是局部变量
5.数值运算
支持 + - * /,但是lua还多了一个乘方运算 ^, eg: 2^3 结果为8
链接两个字符串,用“ .. ” eg: "This a" .. "string" --等于“This a string”
6.比较符号
== 等于,~= 不等于
eg:
a={1,2}
b=a
print(a==b,a~=b) --输出 ture,false
6.逻辑运算
and,or,not
在lua中,只有false和nil才计算为false,其他任何数据都计算为true,0也是true
a and b :如果a 为false,则返回a,否则返回b eg:print(4 and 5) --输出 5 print(nil and 5)--输出 nil
a or b :如果 a为true,则返回a,否则返回b eg:print(4 or 5)--输出 4 print(false or 5)--输出5
注意:
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语言一样,括号可以改变优先级
7.关键字
and break do else elseif end false for function if in local nil not or repeat return then true until while
8.变量类型
用type()函数来检查变量类型,lua支持类型有以下几种:
Nil: 空值,所有没有使用过的变量,都是nil,nil既是值,又是类型
Boolean: 布尔值,只有两个有效值:true和false
Number:数值,在lua里,数值相当于C语言的double
String: 字符串,字符串可以包含“\0”字符的(和C语言总是以"\0"结尾是不一样的)
Table : 关系表类型
Function: 函数类型
Userdata: 这个是用来和lua的宿主打交道,宿主通常是为C和C++来编写的,这种情况下,Userdata可以是宿主的任意数据类型,常用的有Struct和指针
Thread:线程类型,在lua中没有真正的线程,lua中可以将一个函数分成几部分运行。
9.变量的定义
lua中,不管在什么地方使用变量,都不需要声明,并且所有的这些变量总是全局变量,除非我们在前面加上"local",区分大小写 “=”操作就是用来赋值的
a.Nil
没有使用过的变量的值,都是Nil。将一个变量清除时,可以直接赋值nil eg:var1 = nil --nil一定要小写
b.Boolean
布尔值有两种:true和false。
c.Number
在lua中,是没有整数类型的
d.String
字符串,在lua中最通用的方法是用单引号或双引号来括起来一个字符串,它也支持一些转义字符,
e.Table
关系表类型,
第一,所有元素之间,总是用逗号“,”隔开
第二,所有索引值需要用[]括起来,如果时字符串,还可以去掉引号和中括号
第三,如果不写索引,则索引就会被认为是数字,并按顺序自动从1往后编
f.Function
在lua中,
function add(a,b) --add是函数名字,a和b是参数名字
return a+b --return 用来返回函数的运行结果
end
注意:
return语言一定要写在end之前。假如我们非要在中间放上一句return,那么就应该要写成:do return end
lua注释头 lua块注释
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
下一篇:solr 国内镜像
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Java使用Lua脚本案例
java使用lua快速入门
redis lua java