5.Lua表和函数语法
来源:互联网 发布:年轻人理财 知乎 编辑:程序博客网 时间:2024/06/05 18:06
用Lua表要打开库:
luaopen_table(L);
1.Lua表的处理
*表的插入 l插入 table.insert(a, pos,line)
&不传pos想当于push_back
例子:
----------lua 表的插入
local tab1 = {"001","002","003"}
for i,v in ipairs(tab1) do
print("value=" .. v);
end
print("=========insert ============")
table.insert(tab1,3,"002-2")
for i,v in ipairs(tab1) do
print("value = " ..v);
end
print("============insert back======")
table.insert(tab1,"004");
for i,v in ipairs(tab1) do
print("value=" ..v);
end
print("==========remove===========")
table.remove(tab1,3) ---删除第三个
for i,v in ipairs(tab1) do
print("value = "..v);
end
print("===========不加个数默认最后一个=====")
table.remove(tab1)
for i,v in ipairs(tab1) do
print("value = " .. v);
end
print("=============哈希表==================")
注意哈希表要用pairs访问
local tab2 = {id=123,age=20}
tab2["name"] = "xiaoming" --直接加到后面
tab3["id"] = nil; -- 删除id
for k,v in pairs(tab2) do
print(k..":" ..v)
end
-----------------------遍历二维数组
local tab3 = {}
tab3[1] = {"namel","name2"};
tab3[2] = {"value1","value2"};
for k,v in pairs(tab3) do
for k2,v2 in pairs(v) do
print("k2 =" ..k2 .."v2="..v2)
end
end
2.Lua 函数
*函数语法
function func_name (arguments-list)
statements-list;
end;
示例:
--lua函数
function test(p1,p2)
print(p1)
if(p1 == nil) then
p1="001"
end
if(p2 == nil) then
p2 = "002"
end
print("p1="..p1.."p2="..p2)
print("in test function")
end
3.Lua 参数
l普通参数
&lfunction test(para1,para2)
&l可变参数
&function test(...)
function test(para1,...)
print(arg.n)
end
&例子:
-------可变参函数
function test1(...)
local len = table.getn(arg); --获取个数
print("int test1 function len = "..len);
for a=1,len do
print("arg"..a.."="..arg[a]) --取到所有参数
end
end
-----下面是函数调用
test(1,2)
test1(1,"name")
4.Lua 返回值
*l返回值
function test(para1,para2)
return 0
end
*l多返回值 (不建议使用,太特殊的用法,可通过直接返回表实现)
function test(para1,para2)
return 0,3
end
local k,v = test(1,2)
*例子:
----------函数带参数返回
function test2(...)
print("this is test2");
return 1,"name";
----可以同时返回多个值
end
local re,n= test2(123,"name")
print("re = "..re..","..n);
5.Lua 函数变量
*l函数可直接作为变量存储,也可以存入表中,类似js
local eventfun = function(p1)
print("event fun = " .. p1)
end
eventfun(345)
例子:
--------函数调用
local fun1 = test2;
local re,n= fun1(123,"name")
print("re = "..re..","..n);
-------也可以在函数定义的时候直接赋给变量
local event = function (p1)
print("event = ".. p1);
end
event("key");
6.Lua 函数重载
*l类似JS,后面定义的函数会覆盖前面的
function func()
print("my func 1")
end
func()
function func()
print("my func 2")
end
func()
*例子:
-----------函数名重复调用,则最后一个定义的会覆盖前面的
function test2(...)
print("new test2");
end
test2();
阅读全文
0 0
- 5.Lua表和函数语法
- Lua语法和使用基础
- Lua学习第二课_初探lua和lua语法
- Lua初识之表和函数-十三
- lua学习(5)______table表和函数
- lua入门 -- 基本语法 和 参考文档
- lua的:和.的区别(语法糖)
- Lua语法结构之If和While
- lua语法
- LUA语法
- Lua语法
- lua语法
- Lua语法
- lua 语法
- lua 语法
- lua语法
- lua函数.和:的使用
- Lua知识点全面总结(语法、控制语句、函数、模块、面向对象/prototype、和C的交互等等)
- 怎么给Eclipse Spring插件
- 数据结构入门9—虚树
- 暑假训练总结
- 精确率和召回率
- 4.Lua条件判断和循环语句
- 5.Lua表和函数语法
- CDN工程师:还没用上TLS1.2- 那就直接升级到TLS1.3吧
- 6.Lua调用c++函数传递普通参数
- 出现javax.net.ssl.SSLProtocolException: handshake alert: unrecognized_name
- 用html做一个图片切换
- java设计模式之装饰模式(装饰器模式/装饰者模式)
- matlab2c使用c++实现matlab函数系列教程-wilkinson函数
- 恋爱协议(七七条约)
- 分治、归并、快排