Lua笔记5-函数

--[[ 5 函数
lua中,函数是一种对语句和表达式进行抽象的主要机制。函数既可以完成某项特定的任务,也可以只做一些计算并返回结果。
   第一种情况,一句函数调用被视为一条语句;第二种情况中,将其视为一句表达式.
   print(4 or 6)
   x=math.sin(3)+math.cos(10)
   print(os.date())
   无论哪种用法都需要将所有参数放到一对圆括号中。即使调用函数时没有参数,也必须写出一对空括号。对于此规则只有一种特殊的例外情况:一个
   函数若只有一个参数,并且此参数是一个字面字符串或table构造式,那么圆括号便是可有可无的。
   print "hello world"
   dofile 'a.lua'

   函数默认调用的是局部变量,实例:
---------
   i=12

   local i=10

   print(i)
   print(_G.i)
---------

]]--


--[[ 5.1 多重返回值
-- Lua 具有一项非常与众不同的特征,允许函数返回多个结果。Lua的几个预定义函数就是返回多个值的。
-- Lua 编写的函数同样可以返回多个结果,只需要在return关键字后列出所有的返回值即可。
-- Lua 中的函数还可以接受不同数量的实参。
]]--

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

print(maximum({10,23,44,12,6}))


--[[
-- Lua 5.3 具名实参
-- Lua中的参数传递机制是具有位置性的,也就是说在调用一个函数时,实参时通过它在参数表中的位置与形参匹配起来的。第一个实参的值与第一
--个实参的值与第一个形参相匹配,以此类推。但有时候通过名称来指定实参也是很有用的。
-- os.rename("",""),我们希望能指定这两个参数那个是原始的名称,哪个是需要修改成的名字,
--
--无效代码:
-- os.rename(old="",new="')
-- Lua 并不直接支持这种语法,但可以通过一种细微的改变来获得相同的效果。主要是将所有的实参组织到一个table中,并将这个table作为唯一的实
--参传给函数。另外,还需要用到一种Lua中特殊的函数调用语法,就是当实参只有一个table构造式时,函数调用中的圆括号是可有可无的:
--  os.rename{old="",new=""}  --这种语法不一定在代码中能正确的运行。
--
--
--
-- ]]--

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值