当前位置:网站首页>Lua 快速入门(二)——函数(Function)

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

2022-08-11 05:31:00 canon_卡农

前言

Lua是由标准C实现的解释型语言,它的执行效率比较高,通常作为脚本嵌入到应用程序中。
由于支持热更新,Lua在游戏开发领域应用普遍。作为从业人员,不得不来填这个大坑。
本文是Lua入门学习笔记,来源是泰课的一个Lua教程。这里主要记录Lua的语法,以及实现
简单的OOP。
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
原网站

版权声明
本文为[canon_卡农]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_41044598/article/details/126231125