1.无参无返回值
--> 函数的定义
--> (1)
function Say()
print("lua")
end
Say() --> 调用函数--lua
--> (2)
var = function()
print("lua")
end
var()--lua
2.无参有返回值
var = function()
return "lua"
end
print(var())--lua
3.有参无返回值
var = function (arg)
print('Hello'..arg)
end
var(" lua") --Hello lua
4.有参有返回值
var = function (a,b)
return a + b
end
print(var(1,2)) --3
函数作为参数传递给函数
--> 演示:函数作为参数传递给函数
function MyFunc(para)
para()
end
var = function (a,b)
print("函数内部执行函数")
end
MyFunc(var)
--> 演示2:
function myPrint(param)
print("----两个数的和为----",param)
end
function Add(num1,num2,funcParam)
result = num1 + num2
funcParam(result)
end
Add(1,10,myPrint)
在lua中函数可以有多个返回值
function F(a,b)
return a + b,a - b,a * b,a / b
end
v1,v2,v3,v4 = F(10,10)
print(v1)
print(v2)
print(v3)
print(v4)
lua中函数可变的参数列表
function Sum( ... )
print("这是一个求和函数")
local args = { ... }
print("总共传入"..#args.."个参数")
sum = args[1] + args[2]
print('和值为',sum)
end
Sum(1,2)
** 练习 **
--> 练习1:比较两个数的大小,返回最大的数
--> 第一种:
var = function(a,b)
if a > b then
return a
else
return b
end
end
print(var(56,44))
--> 第二种:
function Max(num1,num2)
return num1 > num2 and num1 or num2
end
print(Max(12,33))
--> 练习2:利用可变参数列表求和值,使用任意一种循环求和值
function Sum( ... )
local arg = { ... }
sum = 0
for i = 1,#arg do --> #arg表示传入了多少个参数
sum = sum + arg[i]
end
return sum
end
print(Sum(1,2,2,6,10))
--> lua中的库函数 --- math
--> floor 向下取整
a = 5.125
b = 5.75
b = b + 0.5
print(math.floor(a))
print(math.floor(b))
-- 伪随机数
--print(math.random(100))
--math.min()
--math.max()
-- 作业:完成随机数
--math.random(math.min(),math.max())
print(math.abs(-10)) -- 绝对值
-- assert 和 loadstring
-- 1.
function Hello()
print('Hello world')
end
str = "Hello()"
print(str) -- Hello()
assert(loadstring(str))() --Hello world
-- --> 2.
a = "Hello lua"
b = "print(a)"
assert(loadstring(b))()