lua入门3-基础语法

1.打印
print("xxx")
2.注释:--
3.变量,lua 不需要使用“;”

num = 100 全局变量
local num = 100 局部变量
4.方法
function name(parameters1,parameters2)
end
调用:name(parameters)
5.条件语句
if a > b then
print(a)
else
print(b)
end

6.循环
for var=1, 100 do
print(var)
end

7.表:相当于字典
config = {say = "hellow",name="zhangsan",age= 100}
print(config.say)

dic = {}
dic.sex = 0
dic.height = 1.70
print(dic["sex"])
遍历:for key, var in pairs(config) do
print(key,var)
end

pairs()可以遍历整个table,即包括数组及非数组部分。
ipairs()函数用于遍历table中的数组部分。

8.数组:定义同表类事
eg = {1,2,3,"haha"}
数组的key为索引,从1开始
for var=1, 100 do
table.insert(arr1,1,var)// 每次都是从第一个位置开始插入,所以数组元素是100-1
end
数组长度:table.maxn(arr1)

9.面向对象之复制表的方式
People = {}
--People.sayHi = function ()
--print("sayHiTo")
--end

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

People.sayHi()

10.克隆对象
function People.sayHi()
print("sayHiTo")
end

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

local p = clone(People)
p.sayHi()
11.构造方法
function People.sayHi(self)
print("sayHiTo:"..self.name) --连接字符串用“..”
end

function clone(tab)
ins = {}
for key, var in pairs(tab) do
ins[key] = var --拷贝值
end
return ins --方法的返回与其他语言有些不同
end

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

local p1 = People.new("zhangsan")

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

p1.sayHi(p1)
也可以用:
p1:sayHi(), 这种冒号的方式会默认把调用者当作第一个参数传进来
12.通过复制的方式来继承

13.面向对象之函数闭包的方式
function Person (name)
local self = {}
function init()
self.name = name
end
init()
self.sayHi = function ()
print("sayHiTo:"..self.name)
end
return self
end
local p = Person("zhangsan")
p.sayHi()
复制表的方式要比函数闭包的方式快

--类的继承
function man(name)
local self = Person(name)
self.sayHellow = function ()
print("sayHiHellowTo:"..self.name)
end
return self
end

local m = man("lisi")
m.sayHi()
m.sayHellow()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值