一.lua函数

函数是对语句表达式进行抽象的主要方法。

1.lua函数有两种用途

1).完成指定的任务,函数做调用语句使用;2).计算并返回值,作为赋值表达式使用。

2.lua函数格式

optional_function_scope function function_name( argument1, argument2, argument3..., argumentn)
    function_body
    return result_params_comma_separated
end

optional_function_scope: 该参数是可选的制定函数是全局函数还是局部函数,未设置该参数默认为全局函数,如果你需要设置函数为局部函数需要使用关键字 local

function_name: 指定函数名称

argument1, argument2, argument3..., argumentn: 函数参数,多个参数以逗号隔开,函数也可以不带参数

function_body: 函数体,函数中需要执行的代码语句块。

result_params_comma_separated: 函数返回值,Lua语言函数可以返回多个值,每个值以逗号隔开。

注意:lua函数要先定义后使用。

3.关于lua函数的部分代码

 1 ------------------------------lua脚本变量定义及函数相关知识点------------------------------------------------------
 2 ---局部变量
 3 local test = "中国人民共和国"
 4 --print \'hell0\'
 5 print (test)
 6 --testfun(1)
 7 ---全局变量赋值与java不同需要注意
 8 a,b,c=0,1,2
 9 print(a,b,c)
10 ------全局函数,局部函数使用local关键字修饰
11 function testfun(n)
12     if n < 10 then
13       print ("当前值为:",n)
14     else
15         print("值不合法为:",n)
16     end
17 end
18 
19 
20 -----全局函数定义
21 function Max2(a,b)
22     if a > b then
23         print(a)
24     else
25         print(b)
26     end
27 end
28 -----全局函数另一种定义方式
29 mytest = function(parame)
30     print("mytest---1212:",parame)
31 end
32 ----全局函数定义并将函数作为参数。
33 function add(a,b,functionTest)
34     result = a+b;
35     functionTest(result)
36 end
37 
38 mytest(12)
39 
40 add(1,3,mytest)
41 
42 ------将
43 add(2,3,testfun)
44 add(21,3,testfun)
45 
46 
47 print("---------函数的多返回值------------")
48 
49 
50 ---------函数的多返回值------------
51 s,e = string.find("www.rooboot.com","roo")
52 print(s,e)
53 
54 function minnum(a)
55     local mi =1;
56     local m=a[mi];
57     for i, val in ipairs(a) do
58         if val<m then
59             mi = i
60             m = val
61         end
62     end
63     return m,mi;
64 end
65 
66 print(minnum{1,2,3,4,4,5,78,8});
67 
68 
69 function add2(...)
70     s =0;
71     local args = {...}
72     
73     for i ,val in ipairs(args) do
74         s=s + val;
75     end
76     
77     print("总共传入的参数个数:"..select("#",...).."===="..#args)
78     return s;
79 end
80 
81 print(add2(1,1,1,1,1,1,1,1,1));
82 
83 
84 
85 
86