LUA 笔记

构造器是创建和初始化表的表达式。表是Lua特有的功能强大的东西。最简单的构

造函数是{},用来创建一个空表。


days = {"Sunday", "Monday", "Tuesday", "Wednesday", 
"Thursday", "Friday", "Saturday"} 
Lua将"Sunday"初始化days[1](第一个元素索引为1),用"Monday"初始化days[2]


不推荐数组下标从0开始,否则很多标准库不能使用


默认是以数字为key,值为value

也可以自己指定key 和 value  例如a = { x=1,y=1}

a["x"] = 1 a["y"] = 1


第一,数值for循环:
forvar=exp1,exp2,exp3 do
loop-part 
end 
for将用exp3作为step从exp1(初始值)到exp2(终止值),执行loop-part。其中
exp3可以省略,默认step=1 


Lua也提供了面向对象方式调用函数的语法,比如o:foo(x)与o.foo(o, x)是等价的,
后面的章节会详细介绍面向对象内容。


return f()这种类型的返回f()返回的所有值
functionfoo (i) 
ifi == 0 then returnfoo0() 
elseifi == 1 then returnfoo1() 
elseifi == 2 then returnfoo2() 
end 
end 


unpack返回a所有的元素作为f()的参数
f = string.find 
a = {"hello", "ll"} 
print(f(unpack(a)))  --> 3 4 


functionunpack(t, i) 
 i = i or1 
ift[i] then
returnt[i], unpack(t, i + 1) 
end 
end 


Lua函数可以接受可变数目的参数,和C语言类似在函数参数列表中使用三点(...)
表示函数有可变的参数。Lua将函数的参数放在一个叫arg的表中,除了参数以外,arg
表中还有一个域n表示参数的个数。
例如,我们可以重写print函数:
printResult = ""
functionprint(...) 
fori,v inipairs(arg) do
  printResult = printResult .. tostring(v) .. "\t"
end 
 printResult = printResult .. "\n"
end 


Lua中关于函数稍微难以理解的是函数也可以没有名字,匿名的。当我们提到函数
名(比如print),实际上是说一个指向函数的变量,像持有其他类型值的变量一样:
a = {p = print} 
a.p("Hello World")  --> Hello World 
print = math.sin -- `print' now refers to the sine function 
a.p(print(1))  --> 0.841470 
sin = a.p    -- `sin' now refers to the print function 
sin(10, 20)   --> 10 20 


table.sort(network, function(a,b) 
return(a.name > b.name) 
end) 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值