美文网首页Lua教程
Lua极简入门(六)——函数

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

作者: 李小磊_0867 | 来源:发表于2019-10-22 18:45 被阅读0次

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

    -- 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
    

    相关文章

      网友评论

        本文标题:Lua极简入门(六)——函数

        本文链接:https://www.haomeiwen.com/subject/upkcvctx.html