zoukankan      html  css  js  c++  java
  • LUA拾翠

    一、函数

    1、格式

    optional_function_scope function function_name( argument1, argument2, argument3..., argumentn)
        function_body
        return result_params_comma_separated
    end


    2、多返回值

    Lua函数可以返回多个结果值,比如string.find,其返回匹配串"开始和结束的下标"(如果不存在匹配串返回nil)。

    > s, e = string.find("www.runoob.com", "runoob") 
    > print(s, e)
    5    10

    3、多返回值

    function maximum (a)
        local mi = 1             -- 最大值索引
        local m = a[mi]          -- 最大值
        for i,val in ipairs(a) do
           if val > m then
               mi = i
               m = val
           end
        end
        return m, mi
    end

    4

    4、可变参数

    function add(...)  {...} 表示一个由所有变长参数构成的数组
    local s = 0  
      for i, v in ipairs{...} do   --> {...} 表示一个由所有变长参数构成的数组  
        s = s + v  
      end  
      return s  
    end  
    print(add(3,4,5,6,7))  --->25

    我们可以将可变参数赋值给一个变量

    function average(...)    result = 0
       local arg={...}    --> arg 为一个表,局部变量
       for i,v in ipairs(arg) do       result = result + v    end    print("总共传入 " .. #arg .. " 个数")    return result/#arg end
    #arg --这个是参数的数量

    获取可变参数的数量select("#",...)

    function average(...)    result = 0    local arg={...}    for i,v in ipairs(arg) do       result = result + v    end
       print("总共传入 " .. select("#",...) .. " 个数")
       return result/select("#",...)
    end
    print("平均值为",average(10,5,3,4,5,6))

    -----------------------------------固定参数+可变参数----------------------

    function fwrite(fmt, ...)  ---> 固定的参数fmt     return io.write(string.format(fmt, ...))     end fwrite("runoob ")       --->fmt = "runoob", 没有变长参数。   fwrite("%d%d ", 1, 2)   --->fmt = "%d%d", 变长参数为 1 和 2


    利用select('#',...)--返回可变参数的个数
    select(n,...)-------返回第n个可变参数
    do       function foo(...)           for i = 1, select('#', ...) do  -->获取参数总数             local arg = select(i, ...); -->读取参数             print("arg", arg);           end       end       foo(1, 2, 3, 4);   end
     
     



  • 相关阅读:
    CF Mike and Feet (求连续区间内长度为i的最小值)单调栈
    BOOST_CLASS_EXPORT
    STL 源代码剖析 算法 stl_algo.h -- search
    烦人的Facebook分享授权
    [Swift]Scanner字符串扫描类
    [Swift]LeetCode682. 棒球比赛 | Baseball Game
    [Swift]LeetCode680. 验证回文字符串 Ⅱ | Valid Palindrome II
    [Swift]LeetCode679. 24点游戏 | 24 Game
    [Swift]LeetCode678. 有效的括号字符串 | Valid Parenthesis String
    [Swift]LeetCode677. 键值映射 | Map Sum Pairs
  • 原文地址:https://www.cnblogs.com/justart/p/11648874.html
Copyright © 2011-2022 走看看