(五)函数

Lua函数详解

Lua 函数

Lua 函数主要有两种用途

  1. 完成指定任务。这种情况下函数作为调用语句使用
  2. 计算并返回值,这种情况下函数作为复制语句的表达式使用

函数定义

Lua 编程语句 函数定义格式:

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

解析:

  • optional_function_scope:该参数是可选的制定函数 是全局函数还是 局部函数 默认是全局函数 如果要设置成局部函数 使用 local.
  • function_name:函数名
  • argument1: 函数参数,多个参数有逗号隔开,也可以不带参数
  • fuction_body:函数体 函数中需要执行的代码语句块
  • result_params_comma_separated: 函数返回值,Lua 语言 可以返回多个值,每个值 以逗号分隔开。
 求 两个数中的 大值
  function getMax(num1,num2)
   if num1>num2
   then
   result=num1
   else
   result=num2
   return result
   end
 end
   print(getMax(2,6))
   
   结果:6
 可以将 函数作为参数 传递
 
 myprint = function(param)
   print("这是打印函数 -   ##",param,"##")
end

function add(num1,num2,functionPrint)
   result = num1 + num2
   -- 调用传递的函数参数
   functionPrint(result)
end
myprint(10)
-- myprint 函数作为参数传递
add(2,5,myprint)
 
 
 结果:
 这是打印函数 -   ##    10    ##
 这是打印函数 -   ##    7    ##
多参数 返回


function maxiMum(a)
    local mi=1
    local m=a[mi]
        for i,val in pairs(a) do
        if val>m
        then
        mi=i
        m=val
        end
    end
     return mi,m;
 end


print(maxiMum({1,3,4,5,63,4}))

结果: 5,65

可变参数 在函数参数列表中使用…表示函数有可变的参数 可将可变参数赋值给一个变量

可以通过select(#,…) 来获取可变参数的数量

function average(...)
   result = 0
   local arg={...}    --> arg 为一个表,局部变量
   for i,v in ipairs(arg) do
      result = result + v
   end
   print("总共传入 " .. select(#arg,...).. " 个数")
   return result/#arg
end

print("平均值为",average(10,5,3,4,5,6))

结果:
总共传入 6 个数
平均值为    5.5

有时候需要几个固定参数加上可变参数 ,固定参数必须放在变长参数之前

可以用select函数来访问变长参数:select(’#’,…)或者select(n,…)

  • select(’#’,…) 返回可变参数的长度
  • select(n,…) 用于访问 n到 select(’#’,…)的参数
do
   function foo(...)
       for i = 1,select('#',...) do  -->获取参数总数
           local arg = select(i, ...); -->读取参数
           print("arg", arg);
       end
   end

   foo(1, 2, 3, 4,'nil');
end

结果:
arg	1
arg	2
arg	3
arg	4
arg	nil
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值