lua中的函数--1

参考笔记:ttp://www.lua.org/pil/5.html
1.函数调用规则
和其他语言一样,调用一般使用括号。

print(8*9,9/8)
a=math.sin(3) + math.cos(10)
print(os.date())

需要注意的一点是:如果函数只有一个参数,且改参数是字符串或者表构造器,括号则可有可无。

print "Hello World" --> print("Hello World")
dofile 'a.lua'   -->dofile('a.lua')
print [[a multi-line message]] -->print([[a multi-line message]])
f{x=10,y=20}   -->f({x=10,y=20})
type{}         -->type({})

冒号运算符

o:foo(x)  --类似于o.f(o,x),将o作为第一个额外的参数。

调用参数数目
由于Lua对函数参数数目进行了调整,因此可以输入的参数数目能够与函数定义的参数数目不同,多余的参数值将被丢弃,而未被赋值的参数将得到nil。

function f(a,b)  return a or b end
-Call        Parameters
 -f(3)         a=3,b=nil
 -f(3,4)       a=3,b=4
 -f(3,4,5)     a=3,b=4 (5被丢弃)

在函数中返回多个值。

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

调用不同数目的参数
使用unpack

f = string.find
a = {"hello", "11"}

f(unpack(a))  --- string.find("hello", "ll")

使用递归实现的unpack()

function unpack(t,i)
	i = i or 1
	if t[i] ~= nil then
		return t[i], unpack(t, i+1) 
	end
end
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值