lua 基础语法

--[[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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时间溜走了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值