lua中的函数--1

    科技2025-09-25  69

    参考笔记: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
    Processed: 0.016, SQL: 8