游戏人生
首页
(current)
GameDevTools
登陆
|
注册
个人中心
注销
Lua 教程
Lua 教程
Lua 编辑器安装
Lua 变量
Lua 数据类型
Lua 循环
Lua 流程控制
Lua 函数
Lua 运算符
Lua 字符串
Lua 数组
Lua 迭代器
Lua table(表)
Lua 模块(module)
Lua 文法 BNF范式
Lua 实例
<< Lua 流程控制
Lua 运算符 >>
Lua 函数
Lua函数其实就是把一段代码归纳起来,再给它一个名字。 ####Lua 函数定义 例如我们去药店抓药,一开始总是要带一个单子。你把药方分享给别人,就要把药方上的每一种药都说的清清楚楚。 后来去药店按这个单子抓药的人多了,于是药店直接把这些药打包,取了一个名字叫 化毒散。 以后大家谈论这个药、去药方抓药,就直接说 化毒散,很方便。 Lua函数其实也是这样,比如有几行代码,是用来对比两个数大小,并返回较大的数。 用到的地方很多,每个地方都有这几行重复的代码,看起来很不美观,修改起来也不方便。 那么就可以把这几行代码,整理出来,并且取一个名字。 这就是函数。 ####Lua 函数语法 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 函数实例 下面是一个函数,获取2个数中,更大的数字 ```lua ---获取更大的数字 function GetMaxNum(varNumA,varNumB) if varNumA>varNumB then return varNumA end return varNumB end print(GetMaxNum(10,20)) ``` 输出结果 20 ####Lua可变参数 Lua函数的参数是可变的,在函数参数列表中使用三点 ... 表示函数有可变的参数。 例如如下代码,返回拼接的字符串。 ```lua ---获取拼接的字符串 function GetOneStr(...) local tmpRetStr="" for i, v in ipairs{...} do --> {...} 表示一个由所有变长参数构成的数组 tmpRetStr = tmpRetStr .. v end return tmpRetStr end print(GetOneStr("a","b")) print(GetOneStr("a","b","c")) ``` 输出结果 ab abc ####Lua多返回值 Lua函数支持返回多个值。 下面的Lua函数例子,获取拼接的字符串,返回拼接字符串,原始参数。 ```lua ---获取拼接的字符串,返回拼接字符串,原始参数 function GetOneStr(...) --print(select("#",...)) local tmpRetStr="" for i, v in ipairs{...} do --> {...} 表示一个由所有变长参数构成的数组 --print(select(i,...)) tmpRetStr = tmpRetStr .. v end return tmpRetStr,... end print(GetOneStr("a","b")) ``` 输出结果 ab a b
<< Lua 流程控制
Lua 运算符 >>
提交
5e3e28e2498b3f154caa6372