Lua 学习笔记-函数

函数

函数的作用

函数有2种用途:完成指定的任务,作为调用语句使用;计算并返回值,作为赋值语句的表达式使用。

function func_name(arguments_list)
	statements-list;
end

函数调用的时候,需要“()”表明是函数调用,当只有一个参数并且这个参数是字符串或者表构造的时候,()这个是可选的。

print("Hello Lua")   -->  print "Hello Lua"
dofile(‘a.lua’)  -->  dofile 'a.lua'
f {x= 10, y = 20 }  -->  f({x= 10, y = 20 } )

lua也提供了面向对象的调用方法,比如o:foo(x)与o.foo(o,x)是等价的,Lua 函数实参和形参的匹配与赋值语句类似,多余部分被忽略,缺少部分用 nil 补足。

 f(a, b) return a or b end
CALL PARAMETERS 
f(3) a=3, b=nil 
f(3, 4) a=3, b=4 
f(3, 4, 5) a=3, b=4 (5 is discarded)

返回多个值

Lua函数可以返回多个值,按照接收顺序匹配。
如果一个return语句使用圆括号将返回值括起来也将导致返回一个值。

可变参数

Lua函数可以接受可变数目的参数,在参数列表中使用"…"表示可变参数。Lua将函数的参数放在一个叫arg的表中,除了参数以外arg表中还有一个域n表示参数的个数。

Lua中的函数是带有词法定界第一类值
第一类值指:在Lua中函数和其他值(数值、字符串)一样,函数可以被存放在变量中,也可以存放在表中,可以作为函数参数也可以作为返回值。
词法定界指:被嵌套的函数可以访问他外部的函数中的变量。这一特性给Lua提供了强大的编程能力。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值