Lua入门总结
Lua安装步骤
- 官网下载地址地址: www.lua.org.
- 解压,make
- src文件夹下为lua源码。doc文件夹下为文档。bin文件夹下有两个可执行文件。
lua文件是源代码,是文本文件,它不利于代码的保护。
luac文件是经lua编译器翻译后的字节码文件,是二进制码文件,可直接分享它以利于源码的保护。
Lua基本语法
1.输出,注释
print('Hello lua!') --lua中双引号无区别
--单行注释
--[[ 多行
注释 ]]
2.变量定义(不用声明直接定义)
num = 100
local s = 'hello' --局部变量定义
3.函数定义以及条件语句
function max (a,b)
if a>b then
return a
else
return b
end
4.循环语句
for var = 1,100 do
print(var)
end
Lua基础之表
1.表的定义,插入,取值
Config = {}
Config.words="Hello" --插入方法一
Config.num=100
Config["name"]="Ryan" --插入方法二
print(Config["words"]) --Hello
print(Config.name) --Ryan
2.表的初始化,表的遍历
Config = {hello="Hello lua" ,world="World"}
for key,var in pairs(Config) do
print(key,var)
end
--hello Hello lua
--world World
Lua基础之数组
1.数组的初始化,与遍历(注意lua中数组的索引从1开始)
arr= {1,2,3,"Hello"}
for key,var in pairs(arr) do
print(key,var)
end
-- 1 1
-- 2 2
-- 3 3
-- 4 Hello
2.简单数组方法(插入与计数)
arr= {1,2}
table.insert(arr,1,4) --参数1:插入数组 , 参数2:插入位置 ,参数3:插入值
--插入后数组值:arr={4,1,2}
print(table.maxn(arr)) --输出数组个数,3
Lua用复制表的方法实现面向对象
1.实现简单的面向对象类
People = {}
People.sayHi = function()
print("People say Hello!")
end
2.实现类对象的创建
function clone(tab)
local ins ={}
for key,var in pairs(tab) do
ins[key] =var
end
return ins
end
local p =clone(People) --得到People的对象
3.实现带参数的构造函数
People.new = function(name)
local self = clone(People)
self.name = name
return self
end
local p =People.new('Fool')
4.调用类成员函数访问成员变量
People.sayHi=function(self)
print("People say Hi:"..self.name)
end
p.sayHi(p) --调用成员函数方法一
p::sayHi() --调用成员函数方法二,默认将自己做为第一个参数传入
Lua用复制表的方法实现类的继承
1.实现继承类,以及继承类new成员的方法
function copy(dist ,tab) --将子类额外的元素添加到表中
for key,var in pairs(tab) do
dist[key]=var
end
end
Man ={}
Man.new=function (name)
local self = People.new(name)
copy(self,Man)
return self
end
local man=Man.new("Ji") --构造Man对象
2.子类重写父类方法
Man.sayHi=function(self)
print("Man say Hello:"..self.name)
end
man::sayHi() --Man say Hello:Ji
Lua用函数闭包的方式实现面向对象
1.实现简单的类封装
function People(name)
local self= {}
local function init()
self.name=name --私有成员变量
end
self.age=100 --公有成员变量
self.sayHi =function()
print("Hello"..self.name)
end
init()
return self
end
local p=People.new("Ji")
p::sayHi() --Hello Ji
Lua用函数闭包的方式实现类继承
1.继承类构造
function Man(name)
local self= People(name)
local function init()
self.ManName=name --私有成员变量
end
self.Manage=100 --公有成员变量
self.sayHello =function()
print("Hello"..self.ManName)
end
init()
return self
end
local m=Man("Lisi")
m::sayHello()