1.基本语法
a= 5; -- 全局变量
print(a)
local a = 6; -- local局部变量
print(a)
-- if用法 获得最大值
function max(a,b)
if a>b then
return a
else
return b
end
end
print(max(2,3))
-- for循环
for var=1, 5 do
print(var)
end
2.表
config = {a="a",b=17} -- 定义时候赋值
config.name = "hello"
config.num = 13
-- 点跟中括号是一样
config["score"] = 78
print(config.a)
print(config.name)
print(config["score"])
for key, var in pairs(config) do
print(key,var)
-- a a
--num 13
--name hello
--b 17
--score 78
end
3.数组
arr = {1,2,3,"hello"} -- 数组角标是从1开始,不是从0
4.面向对象之复制表的方式面向对象
-- 复制
function clone(tab)
local ins = {}
for key, var in pairs(tab) do
ins[key] = var
end
return ins
end
function copy(dist,tab)
for key, var in pairs(tab) do
dist[key] = var
end
end
-- People类
People = {}
People.sayHi = function ()
print("People say hi")
end
People.sayHi2 = function (self)
print("People say hi :"..self.name) -- ..表示字符串拼接
end
-- 构造方法
People.new = function (name)
local self = clone(People)
self.name = name
return self
end
local p = clone(People)
p.sayHi() -- People say hi
local p1 = People.new("zhangsan")
p1.sayHi2(p1) -- People say hi :zhangsan
-- 类的继承
Man = {}
Man.new = function (name)
local self = People.new(name)
-- man的所有键值对都赋值到people上面,就相当是一个继承的概念
copy(self,Man)
return self
end
local m = Man.new("man")
m.sayHi2(m) -- People say hi :man
5.面向对象之函数闭包的方式面向对象
function People(name)
local self = {}
local function init()
self.name = name
end
self.sayHi = function ()
print("People say hi :"..self.name)
end
init()
return self
end
local p = People("zhangsan")
p.sayHi() -- People say hi :zhangsan
function Man(name)
local self = People(name)
self.sayHi1 = function ()
print("Man say hi :"..self.name)
end
return self
end
local m = Man("man")
m.sayHi() -- People say hi :man
m.sayHi1() -- Man say hi :man
网友评论