在 Lua 中,使用 函数 前,必须先声明与定义函数。Lua 的函数由函数名、参数列表、函数体和 返回语句 组成。
optional_function_scope function function_name(argument1, argument2..., argumentn)
function_body
return result_params_comma_separated
end
参数 | 描述 |
---|---|
optional_function_scope | 该参数是可选的制定函数是全局函数还是局部函数,未设置该参数默认为全局函数,如果你需要设置函数为局部函数需要使用关键字 local。 |
function_name | 函数名。 |
argument1 | 函数参数,多个参数以逗号隔开,函数也可以不带参数。 |
function_body | 函数体,函数中需要执行的代码语句块。 |
result_params_comma_separated | 函数返回值,Lua 语言函数可以返回多个值,每个值以逗号隔开。 |
我们定义了一个函数,函数名为 function_name,函数参数为 argument1, argument2 等。
returnVal = funcName(param1, param2)
关键字 | 说明 |
---|---|
returnVal | 函数返回值 |
funcName | 要调用的函数的名称 |
param1 | 函数的参数1 |
param2 | 函数的参数2 |
我们调用了函数 funcName,该函数有两个参数,一个返回值 returnVal。
用函数,实现寻找两个数的最大数
#!/usr/bin/lua
print("haicoder(www.haicoder.net)\n")
function max(a, b)
if (a > b) then
return a
else
return b
end
end
max1 = max(100, 200)
max2 = max(1024, 99)
print(string.format("max1 = %d, max2 = %d", max1, max2))
程序运行后,控制台输出如下:
我们定义了一个函数 max,传入两个参数 a 和 b,函数返回 a 和 b 的最大值。在函数里面,我们使用 if 语句 判断 a 和 b 的值,如果 a > b 成立,那么就返回 a 的值,如果不成立,则返回 b 的值,因此实现了寻找 a 和 b 中最大数的逻辑。
接着,我们调用了 max 函数,并打印函数返回的结果。
实现计算两个数之间的所有数的和
#!/usr/bin/lua
print("haicoder(www.haicoder.net)\n")
function sum(a, b)
local result = 0
for i = a, b do
result = result + i
end
return result
end
sum1 = sum(1, 100)
sum2 = sum(100, 1000)
print(string.format("sum1 = %d, sum2 = %d", sum1, sum2))
程序运行后,控制台输出如下:
我们定义了一个函数 sum,传入两个参数 a 和 b,函数返回参数 a 和 b 之间所有数的和。在函数里面,我们使用 for 循环 遍历 a 和 b 之间的所有数,并将它们相加赋值给变量 result,最后返回 result 即实现了求 a 和 b 之间的和的逻辑。
当然,这题,我们没有考虑 a 小于 b 的情况,最好的方法,应该是找到 a 和 b 中的最大值和最小值,然后再使用 for 循环遍历相加。
在 Lua 中,使用函数前,必须先声明与定义函数。Lua 的函数由函数名、参数列表、函数体和返回语句组成。Lua 函数声明的语法为:
optional_function_scope function function_name(argument1, argument2..., argumentn)
function_body
return result_params_comma_separated
end