Lua教程

Lua极简入门(六)——函数

2019-10-22  本文已影响0人  李小磊_0867

在完成一些编码工作时,总会有一些相似或者重复的工作。比如在结算工资时,员工的工资不同,但缴纳税、社保等计算是一个相似的操作,如果对每个人进行表达式计算,如下

-- A税额
5000 * 0.03
-- B税额
10000 * 0.05

对于上述示例,如果员工工资多样,则会导致税率变化,如果每次都需要调整,一方面工作量大,一方面容易出错。此时这种重复就是一种有规律变化的重复,需要从中抽象出变化因此工资额,以及使用工资额自动换算出税率,之后再调用时,只需要变更工资额即可。在Lua中,函数是对语句和表达式进行抽象的主要机制,函数可以完成某一项特定的工作。如内置函数

print("hello")
-->> hello
str = io.read()
-- 接收用户输入,并返回输入信息

一般调用参数时,都由括号包裹,参数在括号之间传递;如果没有参数,则也需要添加括号。在Lua中,对于只传递一个字符串参数(不能是字符串变量)或一个table参数时,可以不加括号

function say(name)
    print("hello " .. name)
end

print"hello lua"
-->> hello lua
print[[你好,中国
万岁]]
-->> 你好,中国
-->> 万岁
say"ray"
-->> hello ray

Lua中函数中的参数列表称为形参列表,调用时传递的称为实参列表。Lua允许调用时传递的实参个数与函数要求的形参个数不同,会自动匹配。其规则为:当传递的实参多余要求的形参,则多余的丢弃;反之,则会将不足的形参置为nil

function add(a, b, c)
    sum = 0
    if a ~= nil then
        sum = sum + a
    end
    if b ~= nil then
        sum = sum + b
    end
    if c ~= nil then
        sum = sum + c
    end

    return sum
end

print(add())
-->> 0
print(add(1))
-->> 1
print(add(1,2))
-->> 3
print(add(1,2,3))
-->> 6
print(add(1,2,3,4))
-->> 6
上一篇 下一篇

猜你喜欢

热点阅读