--[[print("Hello wc hahaha");
a = 10; --全局变量
local b = tostring(a..2); --局部变量
dofile("test.lua");
print(type(b));
local c = nil;
local d = "wwe" .. "dad"
print(string.sub(d, 2, 3)) --获取子串 lua从1开始取的 所以取出的 ‘we’
local html=[<html></html>]
local e, f = string.find(html,"html");
print("e="..e .."f=".. f); --查找第一个字符串的起始位置
if(1 == 1 and 1 == 3) then --if基本条件语句 or或者 and并且 elseif 后面跟then
print("1 == 1");
elseif(2==2) then
print("2==2");
else
print("1 != 3");
end
local i =100 --while语法 循环
while(not(i < 0)) do
print("i =".. i);
i = i - 1
end ]]
--[[
local k = 100 --相当于do..while方法
repeat
k = k + 1
print("k=" .. k)
until k > 100
for list = 1,10 do --for数值遍历
print("list="..list)
end
local vec={"mon", "sun", "tus", "fird"} --数组下标从1开始
for i, v in pairs(vec) do --泛型遍历 pairs
print(i.. ":" .. v)
end
local suzhu={[1]="a", [2]="b", [4]="d"} --数组
for i, v in ipairs(suzhu) do --泛型遍历 ipairs标准的数组从1,2,3...
print(i.. "-:-" .. v)
end
local tab1 = {'001', "002", "003"}
for i, v in ipairs(tab1) do
print(i.."=".. v)
end
print("=======insert========")
table.insert(tab1, 3, "002_2") --从第三个位置插入 原先的值往后面移
for i, v in ipairs(tab1) do
print(i.."=".. v)
end
print("=======insert back========")
table.insert(tab1, "004") --默认插入到表的末尾处
for i, v in ipairs(tab1) do
print(i.."=".. v)
end
print("=======remove ========")
table.remove(tab1) --默认移除表的末尾处的值
for i, v in ipairs(tab1) do
print(i.."=".. v)
end
--]]
--[[
local tab2 = {id=123, age=20} --哈希表带有键值和key
tab2["name"] = "xiaoming"
tab2["id"] = nil --此处如果将id的键值赋值为nil 则将该值删除了
for i, v in pairs(tab2) do
print(i.."=".. v)
end
local tab3 = {} --二维表
tab3[1]={"tom", "rose"}
tab3[2]={"val1", "val2"}
for i, v in pairs(tab3) do --多维遍历表的操作
for i2, v2 in ipairs(v) do
print(i..":-" .. i2.. "=" .. v2)
end
end
function test(p1,...) --函数
local len = table.getn(arg) --可以知道传参数
print("arg len is ".. len)
print(p1)
if(p1 == nil) then
print("p1 == nil")
else
print("p1 != nil")
end
print("void test function")
return 2, "tom" --函数可以返回多值
end
print(test(222, 002, "a")) --可以接多个值
local fun1 = test
print("*********************")
print(fun1(222, 002, "a")) --可以将函数传给变量样赋值给另外一个变量
local fun2 = function(p1)
print("fun2" .. p1)
end
fun2("key")
function fun2(...)
print("test nil")
end
fun2("123") --函数重载 后面定义相同的函数会将前面同名的函数给屏蔽掉(弊端无法知道调用那个函数)
print("--lua调用c--lua调用c++ 结合部分----------------") --c++ 向lua堆栈写东西 通过lua堆栈 lua通过lua全局标量获取返回lua堆栈再到c++
--]]
--lua传递数字给c++
--cGivelua("wangcheng", 22, 1) --lua传递一个字符串参数给c++ lua ture 为0 lua 除了 false 和 nil 之外都是true
--local arr={"a001", "a002", "a003"}
--cTestArr(arr) --lua传递数组给c++调用
--[[
local tab = {name = "xiaoming", age= "22", id="23143"}
cTestTable(tab, 123)
print("&&&&&&&\n")
local a, b = cTestRe()
print("a = "..a.."b="..b)
--]]
--for key, value in pairs(cTestRe()) do
--print(key.."="..value.."\n")
--end
width = 1280
print("ID:"..TOM)
config ={
testtile = "wc",
height =1080
}
for key, value in pairs(person) do
print(key.."="..value)
end
function errfun()
print("lua is error")
end
function event(p1, p2) --c++调用lua的函数 c++传参给lua
print("c++ call lua function "..p1.."==")
for key, value in pairs(p2) do
print(key.."->"..value)
end
local re={id=234}
return re --lua传回返回值给c++调用
end
lua 基础语法
最新推荐文章于 2024-01-19 09:42:59 发布