lua 函数

1、函数只有一个参数,且该参数为table 或 字符串时,调用函数可以省略()

  print"hello world" 同 print("hello world")

  type{} 同 type({})

2、函数拥有多个返回值 
function test()
    return 1, 2, 3
end

  2.1 多赋值中,函数为最后一个表达式,则返回所有值,否则只返回第一个值

    local x, y = test()  -- x = 1, y = 2, 3丢弃

    local x, y, z = 1, test(), 4  -- x = 1, y = 1, z = 4

  2.2 table中函数为最后一个表达式,则返回所有值,否则只返回第一个值

    t = {2, test()}  -- 2, 1, 2, 3

    t = {test(), 2}  -- 1, 2

  2.3 用()强制返回一个值

    print( test() )  -- 1, 2, 4

    print( (test()) )  -- 1

3、不定长参数函数

  unpack()参数为一个table,默认从下标1开始返回所有元素

  lua5.1及之前,unpack为全局函数,可以直接使用,如 unpack(...)

  lua5.2后,unpack被移了到table下面,不可以直接使用,要带上table,如 table.unpack(...)

  lua5.1后 ...需要转换...后再使用,如local arg = {...}

  select("#", ...) -- 获取不定长参数的长度(包括nil)

  select(i, ...) -- 获取不定长参数中第i个位置的参数

 

posted @ 2017-01-15 18:28  gaoyanglao  阅读(247)  评论(0编辑  收藏  举报