Lua基础

--Table当Map使用
var={name="a",sex=1,age=18}

for key,var in pairs(var) do
  print(key,var)
end

--Table当数组使用
arr={1,1,2,3,"hello"}

table.insert(arr,1,"world")
print(table.maxn(arr))

for key,var in pairs(arr) do
  print(key,var)
end


--复制表的方式面向对象 
People={}

function People.sayHi()
  print("hi")
end

People.sayBey=function()
  print("bye")
end

function clone(tab)
  ins={}
  for key,var in pairs(tab) do
    ins[key]=var
  end
  return ins
end

function People.new(name)
  ins=clone(People)
  ins.name=name
  return ins
end

People.sayBey=function(self)
  print("bye"..self.name)
end


p=People.new("Hel")
p.sayHi()
print(p.name)

--下面两句等价
p.sayBey(p)
p:sayBey()



--复制表的方式继承
function copy(dist,tab)
  for key,var in pairs(tab) do
    dist[key]=var
  end
  return dist
end

Man={}
Man.new=function(name)
  local self=People.new(name)
  copy(self,Man)
  return self
end


Man.sayHello=function()
  print("Man sya hello")
end

local m=Man.new("Lisi")
m.sayHello()

m:sayBey()


--函数闭包的方式面向对象 
function People(name)
  local self={}

  local function init()
    self.name=name
  end

  self.sayHi=function()
    print("Hi")
  end

  init()
  return self
end

local p=People("gg")
p.sayHi()

--函数闭包的方式继承
function Man(name)
  local self=People(name)

  local function init()

  end

  self.sayMan=function()
    print("Man say"..self.name)
  end

  return self
end

local m=Man("g")
m.sayMan()
m.sayHi()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值