android 嵌入脚本,快速体验,学习lua(一种可嵌入c++,c#,android,object-c等并进行互调支持热更新的脚本)的入门调试系列(1)...

--这里是注释--[[功能备注:lua快速体验,学习,了解语法

创建时间:2020-6-12

创建人:pcw

--]]

--【数据类型与输出】

print("--------------------------------");print("configlab")print(b);--输出:nil

print(type(b));--输出:nil

print((type(b)=="nil")) --输出:true

b=23.5

print(b);print(type(b));--输出:number

print("--------------------------------");print([[你好

lua是一个神奇的东西,可以嵌入到很多语言]]);--这是格式化字符串

print("config的长度="..#"config");print("--------------------------------");--【变量】

p1=2;--全局变

local p2=2;--全局变量

functiontestparam()

p3=2;local p4=3;endtestparam();print(p1,p2,p3,p4);--输出多个值

if(true) then

local p1=3;--局部变量,不影响全局变量

p2=3;--全局变量

end

print(p1,p2);print("--------------------------------");--【赋值】

pr1,pr2=20,"abc"; --可以同时赋值,但是类型不一样

print(pr1,pr2);print(type(pr1),type(pr2));print("--------------------------------");--【特殊的值】

if(0) then

print("if中0代表true");end

if(nil) then

print("if中nil代表true");else

print("if中nil代表false");end

print("--------------------------------");--【table表】

table1={username="user798",group="2年级"}print(type(table1));for k1,v1 in pairs(table1) do

print(k1.."-"..v1);end;print("--------------------------------");--【local 创建table】

local table2={};

table2["k2"]="v2";

k3=10;

table2[k3]=20;

table2[k3]=table2[k3]+20;for k2,v2 in pairs(table2) do

print (k2.."-"..v2);end;print("--------------------------------");--【local 创建非键值对的table 】 (lua中数组索引从1开始,而不是从0开始)

local table3={"中国","美国","德国"};for k3,v3 in pairs(table3) do

print (k3.."-"..v3);end;print("--------------------------------");--【函数】

functiongetSqure(n,IsSorV)if(IsSorV==true) then

return n*n;else

return n*n*nend

end;print("s="..getSqure(3,true));print("v="..getSqure(3,false));print("--------------------------------");--【匿名函数】(涉及參數字符串相加的,必須保證函數有return返回,否则会报错)

functiondynamicProcess(n,IsSorV,inputFun)returninputFun(n,IsSorV)end

print("匿名函数计算s="..dynamicProcess(4,true,function(n,IsSorV)if(IsSorV==true) then

return n*n;else

return n*n*nend

end));--输出:匿名函数计算s=16

print("--------------------------------");--【函数返回多个值】

print("开始体验函数返回多个值");

s_begin,s_end=string.find("http://www.cnblogs.com/taohuadaozhu",":");print(s_begin,s_end);

s_begin,s_end=string.find("http://www.cnblogs.com/taohuadaozhu","taohuadaozhu");print(s_begin,s_end);print("--------------------------------");--【可变参数】

functionaverage(...)local args={...};local result=0;for i,v in ipairs(args) doresult=result+v;end

return result/#args;--#args代表数组的元素的个数

end

print("可变参数average(1,2,3)="..average(1,2,3));print("--------------------------------");--【for循环】

functionfortest(...)for iIndex3=1,select("#",...) do --数组索引必须从1开始,否则会抛异常

local arg=select(iIndex3,...);print("for循环test="..arg);end

endfortest(3,6,9,12);print("--------------------------------");--【不等于】

if(1~=2) then

print("1!=2的表达式是1~=2");end

print("--------------------------------");--【逻辑运算】

bool1=true;

bool2=false;if(bool1 or bool2) then

print("bool1 or bool2 是符合if的");end

if(bool1 and bool2) then

print("bool1 and bool2 是符合if的");else

print("bool1 and bool2 不符合if的");end

if(not bool2) then

print("not bool2 符合if的");end

print("--------------------------------");--【while循环】

i1=0;while(i1<5) do

print("第"..i1.."次输出");

i1=i1+1;--不支持i1++这种写法.

end;print("--------------------------------");--【循环中没有continue,但等效的方法】(repeat until true, 重复执行知道条件为真).

i2=0;while(i2<3) do

print("当前i2="..i2..",loop.begin");repeat

if i2%2==0 then

print("当前i2="..i2..",遇到4的倍数都不往下走,类似continue的效果");

i2=i2+1;--不支持i2++这种写法

break

else

print("当前i2="..i2..",loop.end");

i2=i2+1;--不支持i2++这种写法

end

until true

end

print("--------------------------------");--[[模拟continue的输出:

当前i2=0,loop.begin

当前i2=0,遇到4的倍数都不往下走,类似continue的效果

当前i2=1,loop.begin

当前i2=1,loop.end

当前i2=2,loop.begin

当前i2=2,遇到4的倍数都不往下走,类似continue的效果]]

print("--------------------------------");--【常用函数】

date = 2; month = 1; year = 2020

print(string.format("日期格式化 %02d/%02d/%03d", date, month, year))--线程(thread)可同时运行多个线程,协程(coroutine) 同一时间只能运行一个,挂起时才停止--userdata(自定义类型):用户自己在c,c++中定义的指针或结构体类型存储到userdata

下面是結果:

configlab

nil

nil

true

23.5

number

--------------------------------

你好

lua是一个神奇的东西,可以嵌入到很多语言

config的长度=6

--------------------------------

222nil

23

--------------------------------

20abc

numberstring

--------------------------------

if中0代表true

if中nil代表false

--------------------------------

table

username-user798

group-2年级

--------------------------------

10-40

k2-v2

--------------------------------

1-中国

2-美国

3-德国

--------------------------------

s=9

v=27

--------------------------------

匿名函数计算s=16

--------------------------------

开始体验函数返回多个值

55

2435

--------------------------------

可变参数average(1,2,3)=2

--------------------------------

for循环test=3

for循环test=6

for循环test=9

for循环test=12

--------------------------------

1!=2的表达式是1~=2

--------------------------------

bool1 or bool2 是符合if的

bool1 and bool2   不符合if的

not bool2   符合if的

--------------------------------

第0次输出

第1次输出

第2次输出

第3次输出

第4次输出

--------------------------------

当前i2=0,loop.begin

当前i2=0,遇到4的倍数都不往下走,类似continue的效果

当前i2=1,loop.begin

当前i2=1,loop.end

当前i2=2,loop.begin

当前i2=2,遇到4的倍数都不往下走,类似continue的效果

--------------------------------

--------------------------------

日期格式化 02/01/2020

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值