lua进阶(二)

第五章 函数

   函数有两种用途:1.完成指定的任务,这种情况下函数作为调用语句使用;2.计算并
   返回值,这种情况下函数作为赋值语句的表达式使用。

function function_name( ... )
    -- body
end

Lua使用的函数可以是Lua编写也可以是其他语言编写,对于Lua程序员来说用什
么语言实现的函数使用起来都一样。

Lua函数实参和形参的匹配与赋值语句类似,多余部分被忽略,缺少部分用nil补足。

function f( a,b )
    return a or b
end

print(f(2))
print(f(3,4,4))
print(f(3,4))

  返回多个结果值

function maxtwo(x,y,z)
    if (x > y) and (x > z) then
        if y > z then
            return x, y
        else
            return x ,z
        end
    else
        return y, z
    end
end

print(maxtwo(3,54,8))
print(maxtwo(1,2,3))
print(maxtwo(3,2,1))
print(maxtwo(1,3,2))

可变参数

Lua 函数可以接受可变数目的参数,和 C 语言类似在函数参数列表中使用三点(...)
表示函数有可变的参数。Lua 将函数的参数放在一个叫 arg 的表中,除了参数以外,arg
表中还有一个域 n 表示参数的个数。

posted @ 2015-04-03 18:43  hongjack  阅读(463)  评论(0编辑  收藏  举报