Lua-基本语法二
字符串长度
a = "张三";
-- 长度为六
print(#a)
b = "aaa"
-- 长度为三
print(#b)
方法
- 没有返回
function Do(a,b)
print(a,b);
end
Do(1,2);
- 有返回值
function Do(a,b)
return a+b
end
print(Do(2,3))
- 多返回值
function Do(a,b)
return a+b,a-b,a*b,a/b
end
local a,b,c,d = Do(1,2);
print(a,b,c,d);
不需要定义传入值得类型,不需要定义返回值得类型,要先声明方法才能进行调用。
方法作为参数进行传递
function Do(dosomething)
if dosomething ~=nil then
dosomething();
end
end
-- 方法作为参数进行传递(匿名方法)
Do(function ()
print("aaaa")
end)
function Add()
print(1+2)
end
-- 方法作为参数进行传递
Do(Add)
可变参数
function XXX(...)
local args = {...}
for key, value in pairs(args) do
print(key,value)
end
print("`````````````")
for key, value in pairs(args[4]) do
print(key,value)
end
-- 可变参数数量
print(select("#",...))
-- 输出第三位之后的
print(select(3,...))
end
XXX(1,true,"aaa",{1,3,4})
表
-
解释
-
1:table是lua的一种数据结构,用来帮助我们创建不同的数据结构,如字典,数组。
-
2:table可以使用任意类型的值来作为数组的索引,但不能为空。
-
3:没有固定的大小,根据自己的需要进行扩容。
-
4:lua是用来解决模块,包,和对象的。
-- 表
local _myTable = {"1","2","3","4",teacher="teacher",};
-- 表长度(只显示数组部分的长度)
print("lenght",#_myTable)
-- 表中数组追加
_myTable[5] = "5"
_myTable[7] = "7"
-- 表中字典追加
_myTable.adivser = "adivser"
-- 根据索引获得对应数据
print(_myTable[1])
-- 根据键获得对应数据
print(_myTable.teacher)
-- 根据索引获得对应数据
print(_myTable["teacher"])
print (#_myTable)
-- pairs迭代器,将便利表中所有数据
for key, value in pairs(_myTable) do
print(key,value);
end
-- ipairs迭代器,只遍历连续数组部分
for index, value in ipairs(_myTable) do
print(index,value)
end
- 注
- Lua不具备面向对象编程,但使用它了table可以演变成面向对象编程。
- 表中数组部分存储的索引不是从0开始,而是从1开始的。
- 表中数组部分自动扩容是根据二的倍数进行扩容的。
- 使用#只能显示数组存储部分的长度。
- pairs遍历表中所有的数据,但字典部分是无序的。
- ipairs遍历表中数组部分数据,且索引必须是连续的,有序。
本文来自博客园,作者:坞中客,转载请注明原文链接:https://www.cnblogs.com/wuzhongke/p/16750582.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?