加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

lua语言基础

发布时间:2020-12-14 22:07:54 所属栏目:大数据 来源:网络整理
导读:只是记录一些基础,或者说需要注意的地方 or 和 C++?不一样的地方 -- 行注释--[[块注释]] -- 1、 lua 打印函数print("测试打印");-- 2、 lua 变量nNumA = 100;--全局变量local nNumB = 100;--局部变量-- 3、 lua 函数--全局函数function logHello()--codepri

只是记录一些基础,或者说需要注意的地方 or 和 C++?不一样的地方

-- 行注释
--[[
块注释
]] 

--  1、  lua 打印函数
print("测试打印");

--  2、  lua 变量
nNumA = 100;--全局变量
local nNumB = 100;--局部变量
--  3、  lua 函数
--全局函数
function logHello()
	--code
	print("Hello");
end
--局部函数
local function logHello2()
	print("Hello2");
end
--多重返回值
-- return n,m;
--变长参数 接收不同数量的参数  用3个点表示
function addNum(...)
	local s = 0;
	for key,var in ipairs(...) do
		s = s+var;
	end
	print(s);
end

--函数调用
logHello();
logHello2();

--  4、  字符串拼接(连接) 用 ..
print("字符串" .. "拼接");

--  5、关系操作符     不等号是  ~=

--  6、逻辑操作符     and     or      not
--  and:如果第一个操作数位假,就返回第一个操作数,不然返回第二个操作数  例如:print(4 and 5);
--  or:如果第一个操作数位真,就返回第一个操作数,不然返回第二个操作数  例如:print( 4 or 5);

--  7、控制语句
--if
if 5>4 then
	print(5);
end
--if else
if 5>4 then
	print(5);
else
    print(4);
end
--if elseif else
if 5>4 then
	print(54);
elseif 5>3 then
    print(53);
else
    print(33);
end
--while
local a=3;
while a>0 do
	print(a);
	a = a-1;
end
--repeat-until
local b = 3;
repeat
	print(b);
	b = b-1;
until b<0
--for
--初始值   条件  步长(即 i 每次的增加量)步长没写的话 默认1
for i=0,3,1 do
    print(i);
end
-- 遍历       
local tableA = {};
for key,var in ipairs(tableA) do
    print(var);
end
local tableB = {};
for key,var in pairs(tableB) do
	print(var);
end

--数组    
local arrayA = {};
arrayA[1] = 22;
arrayA[2] = 23;
--lua遵循以1作为数组的起始索引  长度符#依赖于这个事实来计算数组的大小
for var=1,#arrayA do
	print(arrayA[var]);
end

--数学库math
math.abs(x);--取绝对值
math.floor(x);--不大于x的最大整数
math.max(2.71,100,-98,23);--取得参数中最大值
math.min(2.71,23);--取得参数中最小值
--在使用math.random函数之前必须使用此函数设置随机数种子
math.randomseed(os.time());
math.random(1,100);--获取1-100的随机数
math.random(100);

--table库
--指定位置插入元素. pos参数可选,默认为数组末尾.
table.insert(table,pos,value);
--删除并返回位于pos位置的元素,默认最后一个元素
table.remove(table,pos);
--连接 从i到j 元素间以指定的分隔符(sep)隔开 默认为空字符
table.concat(table,sep,i,j);
--返回指定table中所有正数key值中最大的key值,如果不存在key值为正数的元素,则返回0
table.maxn(table);
--对给定的table进行升序排序, comp是一个可选的参数,此参数是一个外部函数,table.sort(table,comp);

--string库
string.len("abcd");          --4
string.rep("abcd",2);        --abcdabcd
string.lower("AbcD");        --abcd
string.upper("AbcD");        --ABCD
string.format("the value is:%d",4);  --the value is:4
string.sub("abcd",2);        --bcd
string.sub("abcd",-2);       --cd
string.sub("abcd",2,-2);     --bc
string.sub("abcd",3);      --bc
string.find("cdcdcdcd","ab");    --nil
string.find("cdcdcdcd","cd");    --1 2
string.find("cdcdcdcd","cd",7);  --7 8
string.gsub("abcdabcd","a","z"); --zbcdzbcd 2
string.gsub("aaaa","z",3);   --zzza 3
string.byte("ABCD",4);           --68
string.char(97,98,99,100);       --abcd

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读