一、流程控制
(一)含义
Lua 编程语言流程控制语句通过程序设定一个或多个条件语句来设定。在条件为 true 时执行指定程序代码,在条件为 false 时执行其他指定代码。
(二)原型
if (成立) then执行体1else执行体2
end
(三)举例
a = 1;
if (a == 1) thena = a + 1;
elsea = a + 2;
end
print(a);
二、函数
(一)函数定义
在Lua中,函数是对语句和表达式进行抽象的主要方法。既可以用来处理一些特殊的工作,也可以用来计算一些值。
Lua 提供了许多的内建函数,你可以很方便的在程序中调用它们,如print()函数可以将传入的参数打印在控制台上。
Lua 函数主要有两种用途:
- 完成指定的任务,这种情况下函数作为调用语句使用;
- 计算并返回值,这种情况下函数作为赋值语句的表达式使用。
1.范围
默认local
2.格式
optional_function_scope function function_name( argument1, argument2, argument3..., argumentn)function_bodyreturn result_params_comma_separated
end
function 函数名(参数列表)函数体;return 返回值
end
function max(arg1,arg2)local result = arg1;if (arg1 < arg2) then;result = arg2;end;return result;
end;
print(max(1,2));
(二)多返回值函数
function findMax(arr)local index = 1;local value = arr[index];for k,v in pairs(arr)doif (v > value) thenindex = k;value = v;endendreturn index,value;
endindex,value = findMax({1,3,5,7,9});print("最大值索引:"..index.."最大值:"..value);
(三)可变参数
1.可变参数:arg = {…}
function sum(...)local arg = {...};local result = 0;for k,v in pairs(arg)doresult = result + v;endreturn result;
end
2.获取可变参数的个数: #arg
function avg(...) local arg = {...};local result = 0;local count = #arg;for k,v in pairs(arg)doresult = result + v;endreturn result/count;
endprint("avg ="..avg(1,2,3,4,5,6));
3.函数参数列表中,存在固定参数和可变参数,固定参数全部写在前面
function fmtPrint(fmt,...)io.write(string.format(fmt,...))
endfmtPrint("%s\n","helloworld")
fmtPrint("%d + %d = %d\n",1,1,2)
4.选取可变参数的值:select
function ff4(...)a,b,c = select(3,...)return a,b,c;
endprint(ff4(1,2,3,4,5,6,7,8,9));