安装好Lua之后就可以进行Lua脚本的编程学习了。
1.终端执行lua test.lua就是执行test.lua脚本;
2.终端执行lua -i test.lua 执行问test.lua之后就会进入交互模式;
3.在交互模式中运行dofile(”test.lua“)就可以运行test.lua.一种常用的编辑模式就是左边开一个调试窗口,启用lua的交互模式用dofile运行程序,另一边开一个编辑器编辑.lua文件;
4.lua是大小写敏感的;
5.“--”是单行注释,多行注释的话就要像下面这样:
--[[ print(10) -- no action (comment) --]]
6.在lua中引用未初始化的值是允许的,它返回的是nil;
7.只要在全局的部分声明一个变量,它就是全局变量了,如果要销毁一个全局变量,直接赋值为nil就可以了;
8.通过等号表达式可以把lua当计算机用,比如:
> =math.log10(1000) 3 > =math.pi 3.1415926535898 > =math.sin(3.14) 0.0015926529164868 >
9.数据类型
lua有下面的几种数据类型:
> print(type("Hello world")) string > print(type(10.4*3)) number > print(type(print)) function > print(type(type)) function > print(type(true)) boolean > print(type(nil)) nil > print(type(type(X))) string
其中Nil类型的变量只可能有一个值,就是nil。
另外Boolean只有两个值,true和false。在条件判断中,除了false可以代表“否”,nil也可以代表“否”,其余的所有值都只能代表true,包括0.比如:
> if 0 then print("0 is true!") end 0 is true!
10.number类型的特点:
没有整型,只有实型,在Lua中一个Number类型可以代表任何具有32比特的整形而没有舍入错误。
11.String类型的特点:
自动分配内存,初始化之后不可改变。
Lua在管理长的字符串方面非常有效。
12.类型转换
自动类型转换会发生在number和string类之间,例如当string和number之间进行数值运算的时候,string会自动转换成number类型,当然是在可以转换的情况下。
> print("10+1") 10+1 > print("11"+1) 12 > print("11"*1.2) 13.2 >
显示的类型转换有tonumber和tostring,例如:
> a="10" > print(a) 10 > print(type(a)) string > b=tonumber(a) > print(type(b)) number > print(b) 10 > c=tostring(b) > print(type(c)) string > print(c) 10 > print(#c) 2
print(#c)是指打印字符串c的长度。
13.Table
Table是Lua中最重要的数据类型了。
Table可以用作普通数组,符号表,集合,记录,队列...
所有table都可以用不同类型阿的索引来访问value,当需要容纳新条目时,table会自动增长。
引用table中未被初始化的元素时,返回nil,将nil赋予table的某个元素时,就是删除该元素。
table通常以1作为索引的起始值。
下面是一个简单的例子,获得table中的最小值:
a={} for i=1,5 do a[i]=io.read() end min=a[1] for i=1,#a do if min>a[i] then min=a[i] end end print("min:") print(min)