lua中的table

-- and 和or 可以理解成我执行到哪儿, 然后就返回的意思
print (1 or 3)
print (nil and 3)
print(not nil)
print(not 1)
print (not false)
--循环语句
-- 在lua中没有++ 和 -- 
--while
mttable = {1,2,2,3}
local i = 1
while mttable[i] do
    print (mttable[i])
    i = i+ 1
end
--repeat
local sum = 1
repeat 

    sum = sum + 1
    print (sum)

until sum == 3
--for
for i=1,10,2 do
    print(i)
end
--table的用法
--lua中索引从1开始的不是从0开始的
--table访问的方式和我们在其他语言中的数组的方式很像
mytable = {}
mytable2 = {
    2, 
    3, 
    4,
    5,
    "string", --索引号是5
    config = {1,2,3},--注意config的索引号不是7是一个地址号
    8 --索引号是6
}
for k,v in mytable2 do
    print (k,v)
end
for i=1,#mytable2 do
    print(mytable2[i])
end

s = "ok"
mytable = {
    1,
    2,
    k = "s",
    config = {},

    4,
    5

}
mytable[s] = 10
print (mytable["k"])
print (mytable[s])
print (mytable.k) --在lua中mytable.k等于mytable["k"]
--a.x   a[x] 
--[[
a.x 等价于  a["x"]
a[x]以变量x的值来索引table
]]
--第一种遍历方式
for i=1 , #mytable do
    print (mytable[i])
end
--第二种遍历方式
--for ipairs  ipairs迭代器和for的方式获取的值是一样的,
--都是按照隐式的索引去迭代来获取值的
for i,v in ipairs(mytable) do
    print(i, v)
end
--第三种遍历的方式 他会把全部的索引都显示出来,
--但是注意他的顺序并不是完全按照写的顺序来的
for k,v in pairs(mytable) do
    print(k, v)
end
--1 作为第三方的插件集成到项目中,为我们的项目提供支持功能
--2 可以完全用lua来进行开发,例如quick-cocos2dx 、CoronaSDK
--3 当做一种数据的配置集(就是阵列)
enemy_waves = {
    { entierId = 1, infoid = 1},
    { entierId = 2, infoid = 1},
    { entierId = 2, infoid = 3},
    { entierId = 3, infoid = 3},
    { entierId = 4, infoid = 3},
    { entierId = 1, infoid = 1}
}
enemy_datas = {
    { maxHp = 100, damage = 100, isHaveSpecialEffect  = true},
    { maxHp = 100, damage = 100, isHaveSpecialEffect  = true},
    { maxHp = 100, damage = 100, isHaveSpecialEffect  = true}
}
for k,v in pairs(enemy_datas) do
--  print(k, v)
    if type(v) == "table" then
        for ik, iv in pairs(v) do
            print(ik, iv)

        end
    end
    print("++++++++++++++")
end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值