Lua程序设计(七)

本文探讨了Lua编程中的函数特性,包括如何处理多返回值,理解可变长参数函数的工作原理,以及如何通过变长参数实现普通参数传递。通过使用冒号操作符进行面向对象调用,并利用table.pack和select函数灵活处理可变长参数。
摘要由CSDN通过智能技术生成

函数是对语句和表达式进行抽象的主要方式,调用函数时应使用一堆圆括号把参数列表括起来,即使不需要参数,也需要一对空括号()。

Lua语言也为面向对象风格的调用(object-oriented call)提供了冒号操作符。形如 o:foo(x) 意为调用对象o的foo方法。

一个函数定义具有一个函数名( name), 一个参数表组成的列表和由一组语句组成的函数体。

function add (a)
    local sum = 0
    for i = 1, #a do
        sum = sum + a[i]
    end
    return sum
end

如果调用函数时使用的参数个数与定义时的参数个数不一致, Lua语言会通过抛弃多余参数和将不足参数设为nil的方式来调整参数个数。

多返回值

Lua语言中允许一个函数返回多个结果

s, e = string.find("hello lua users", "Lua")
print(s, e) --> 7   9

Lua语言会根据函数被调用的情况调整返回值的数量。

可变长参数函数

function add (...)
    local s = 0
    for _, v in ipairs{...} do
        s = s + v
    end
    return s
end

print(add(3, 4, 10, 25, 12)) -->54

参数列表中的三个点(...)表示函数参数是可变长的。

实际上可以通过变长参数来模拟Lua语言中的普通参数传递机制


                
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值