Lua丨函数方法、do end、if end、local

版权声明:欢迎转载,转载请注明出处 https://blog.csdn.net/weixin_38239050/article/details/82455618

函数的定义

--[[
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] 后,该函数当做局部函数使用,类似局部变量

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方法块直接执行,不必调用

do
	a=10
	print(a)
end

if end

除了else,其他的都要跟then

a=10
if a>5 then
	print(a)
else if a>3 then
	print(a)
else
	print(a)
end

猜你喜欢

转载自blog.csdn.net/weixin_38239050/article/details/82455618
end
今日推荐