Lua学习笔记3:函数

函数定义形如:

function 函数名(参数列表)

函数体

end

例如:

function add(a,b)

return a+b

end

相当于:

add = function(a,b) return a+b end

和C语言一样,Lua的函数可以接受可变参数个数,它同样是用"…"来定义的,比如:
    function sum (a,b,…)
    如果想取得…所代表的参数,可以在函数中访问arg局部变量(表类型)得到。
    如 sum(1,2,3,4)
    则,在函数中,a = 1, b = 2, arg = {3, 4}
    更可贵的是,它可以同时返回多个结果,比如:
    function s()
      return 1,2,3,4
    end
    a,b,c,d = s() -- 此时,a = 1, b = 2, c = 3, d = 4
表类型可以拥有任意类型的值,包括函数!因此,有一个很强大的特性是,拥有函数的表,恰当的应该说是对象吧。Lua可以使用面向对象编程了。

例如:

    t =
    {
     Age = 27
     add = function(self, n) self.Age = self.Age+n end
    }
    print(t.Age) -- 27
    t.add(t, 10)
    print(t.Age) -- 37

    t.add(t,10) 在Lua中,你可以简写成:
    t:add(10) -- 相当于 t.add(t,10)


你可能感兴趣的:(lua)