Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
Lua 是一个区分大小写的编程语言。
Lua可以很方便的和其他程序进行集成(c++,c#,java,,,,)
Lua是动态类型定义的语言。(类型可以随意改变)
Lua和C#的区别
Lua可以在几乎所有的操作系统和平台进行编译运行
可以很方便的更新代码
更新了代码后,可以直接在手机上运行,不需要重新安装
C#只能在特定的操作系统中进行编译成dll文件,然后打包进安装包在其他平台(Android、iOS)运行
在移动平台上不能更新替换已有的dll文件,除非重新下载安装包
Lua的命名规则
标示符以一个字母 A 到 Z 或 a 到 z 或下划线 _ 开头后加上0个或多个字母,下划线,数字(0到9)。
1,不能以数字开头
2,不能是关键字(最好不要使用下划线加大写字母的标示符,因为Lua的保留字也是这样的。)
3,Lua 不允许使用特殊字符如 @, $, 和 % 来定义标示符
全局变量
在默认情况下,变量总是认为是全局的。
全局变量不需要声明,给一个变量赋值后即创建了这个全局变量,访问一个没有初始化的全局变量也不会出错,只不过得到的结果是:nil
b = nil
把一个变量置空,相当于从没有使用过这个变量,Lua会销毁b所占的内存
boolean
这个下面只有两个值 true 和 false
false和nil都代表false,其他任何值都代表true(0和空字符串lua都认为是true)
for循环
从1到100的偶数
for index=1,100 do
if index%2==0 then
print(index)
end
end
while循环
index=1
while (index<=100)
do
if index%2==0 then
print(index)
end
index=index+1
end
repeat循环
index=1
repeat
if index%2==0 then
print(index)
end
index=index+1
until(index>100)
table
for循环遍历table中的“键值”
mytable={1,23123,12321,1212,312,123123}
for key,val in pairs (mytable) do
print(key..":"..val)
end
table.getn(mytable)相当于getlength
for index=1,table.getn(mytable) do
print(mytable[index])
end
function函数
function ADD(a,b,c)
return a+b+c
end
local item=ADD(213,2131,12)
print(item)
在lua中实现”面向对象”
新建一个lua脚本Character
Character={}
Character.hp=0
function Character:New()
local o={}
setmetatable (o,{__index=self})
//setmetatable设置o的元表为Character
return o
end
//在表o中查找东西时,若找不到会继续在表o的元表中查找相应值
//功能类似于C#中 Character ch=new Character()
function Character:OnDamage(attack)
self.hp=self.hp-attack
if self.hp<=0 then
print("gameover")
end
end
//新建一个Character的方法
新建一个lua脚本Player
require "Character"//require引用,相当于C#中的using
player={}
player=Character:New()
//相当于Character new了一个子类player
player.hp=100
player:OnDamage(100)
//调用方法
for