前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Lua⭐️函数方法、do end、if end、local

Lua⭐️函数方法、do end、if end、local

作者头像
星河造梦坊官方
发布2024-08-14 17:30:45
690
发布2024-08-14 17:30:45
举报
文章被收录于专栏:星河造梦坊专栏

🟥 函数的定义

代码语言:javascript
复制
--[[
C#求阶乘
int fact(int n){
	if(n==1)
		return n;
	else
		return n*fact(n-1);
}

--]]

--函数定义通用function,不必有返回类型
--现学到的function、if、for都有end,其他待确认
function fact(n)
	if n==1 then
		return n
	else
		return n*fact(n-1)
	end
end

print(fact(3))

fact2=fact
print(fact(3))



>lua -e "io.stdout:setvbuf 'no'" "table.lua" 
6
6
>Exit code: 0

🟧 把函数当参数传递

加上 [local] 后,该函数当做局部函数使用,类似局部变量

代码语言:javascript
复制
function testFun(tab,fun)
	for k,v in pairs(tab) do
		fun(k,v)
	end
end

mytab={key1="value1",key2="value2"}

function myfun(k,v)
	print(k..":"..v)
end

testFun(mytab,myfun)

--匿名方法
testFun(mytab,
	function(k,v)
		print(k..":"..v)
	end)




>lua -e "io.stdout:setvbuf 'no'" "table.lua" 
key1:value1
key2:value2
key1:value1
key2:value2
>Exit code: 0

🟨 do end

do end方法块直接执行,不必调用

代码语言:javascript
复制
do
	a=10
	print(a)
end

🟩 if end

除了else,其他的都要跟then

代码语言:javascript
复制
a=10
if a>5 then
	print(a)
else if a>3 then
	print(a)
else
	print(a)
end

大家还有什么问题,欢迎在下方留言!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-09-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 🟥 函数的定义
  • 🟧 把函数当参数传递
  • 🟨 do end
  • 🟩 if end
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档