-- 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
lua中的table
最新推荐文章于 2025-04-13 12:14:35 发布