Lua 快速入门(二)——函数(Function)

前言

Lua是由标准C实现的解释型语言,它的执行效率比较高,通常作为脚本嵌入到应用程序中。
由于支持热更新,Lua在游戏开发领域应用普遍。作为从业人员,不得不来填这个大坑。
本文是Lua入门学习笔记,来源是泰课的一个Lua教程。这里主要记录Lua的语法,以及实现
简单的面向对象。
Lua 快速入门(一)——基础语法
Lua 快速入门(二)——函数(Function)
Lua 快速入门(三)——表(Table)
Lua 快速入门(四)——多脚本执行
Lua 快速入门(五)——协程(thread)
Lua 快速入门(六)——基础OOP


函数(Function)

1.函数声明
Lua中的函数作为一个变量,它的type是function。函数声明,有两种声明方式。

print("**********函数************")
--function 函数名()
--end

--a = function()
--end

function F1()
	print("F1函数")
end
F1()						--F1函数

F2 = function()
	print("F2函数")
end
F2()						--F2函数

2.函数调用
Lua调用方法传参时,允许传入的参数和函数参数个数不匹配。
函数支持变长参数。函数return的时候支持多个返回值。

print("**********函数传参************")
function F1(a)
	print(a)
end
F1(1)						--1
F1("123")					--123
F1(true)					--true
--如果你传入的参数 和函数参数个数不匹配
--不会报错 只会补空nil 或者 丢弃
F1()						--nil
F1(1,2,3)					--1
print("**********支持多返回值************")
function F2(a)
	return a, "123", true
end
--多返回值时 在前面申明多个变量来接取即可
--如果变量不够 不影响 值接取对应位置的返回值
--如果变量多了 不应 直接赋nil
temp, temp2, temp3, temp4 = F2("1")
print(temp)						--1
print(temp2)					--123
print(temp3)					--true
print(temp4)					--nil
print("**********变长参数************")
function F3( ... )
	--变长参数使用 用一个表存起来 再用
	arg = {...}
	for i=1,#arg do
		print(arg[i])
	end
end
F3(1,"123",true,4,5,6)		--依次打印 1 123 true 4 5 6

3.函数重载
lua中 函数不支持重载 ,同名函数默认调用最后一个声明的。

print("**********不支持重载************")
function F1()
	print("第一个F1")
end
function F1(str)
	print(str)
end
F1()							--nil

4.函数嵌套、闭包
若将一个函数写在另一个函数之内,那么这个位于内部的函数便可以访问外部函数中的局部变量。

print("**********函数嵌套************")
function F1()
	return function()
		print(123);
	end
end
f2 = F1()
f2()						--123

--闭包
function F3(x)
	--改变传入参数的生命周期
	return function(y)
		return x + y
	end
end

f4 = F3(10)
print(f4(5))				--15
  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值