• Lua笔记5


    1. 当函数只有一个参数且该参数是字符串常量或表构造器时,括号是可选的:print "abc"
    2. 函数参数的执行行为,举例:function f (a, b) print(a, b) end
    f () --> nil nil 
    f(3) --> 3 nil 
    f(3, 4) --> 3 4 
    f(3, 4, 5) --> 3 4 ( 5被丢弃)
    
    3. 函数默认函数写法,举例:调用incCount(),默认加1操作。
    function incCount(n)
        n = n or 1
        globalCounter = globalCounter + n
    end
    
    4. 函数可变长参数...(可变长参数表达式),其行为类似于 一个具有多个返回值的函数。举例:
    function foo ( ... ) 
    local a,b,c = ...
    
    当和固定参数混用,可变参数要放在固定参数之后。
    5. 函数table.unpack与函数table.pack的功能相反。pack把参数列表转换成Lua语言中一个真实的列表(一个表),而unpack则把Lua语言中的
    真实的列表(一个表)转换成一组返回值,进而可以作为另一个函数的参数被使用。例如:a,b = table.unpack{10,20,30} -- a=10, b=20, 30被丢弃
    6. 尾调用不会使用栈空间,举例(正确的尾递归):支持任意数字作为参数,不会发生溢出。
    function foo (n) 
        if n > 0 then return foo(n - 1) end
    end 
    
    7. 尾调用判断:在调用之后是否进行其他工作。举例:
    return g(x) + 1 -- 必须进行为口法 不是尾调用
    return x or g(x) -- 必须把返回值限制为1个 不是尾调用
    return (g(x)) -- 必须把返回值限制为1个 不是尾调用
    return x[i].foo(x[j] +a*b, i + j) -- 在调用前对func及其参数求值 是尾调用
    
    8. 两个功能强大的函数:os.execute 和 io.popen
  • 相关阅读:
    java、maven环境搭建
    httpclient的get和post
    使用批处理命令定期清理删除指定后缀文件,释放空间
    WebService—规范介绍和几种实现WebService的框架介绍
    Delphi7 ADO面板上的控件简介
    sqlserver中判断表或临时表是否存在
    Delphi中Format与FormatDateTime函数详解
    delphi弹出信息框大全
    Delphi 日期时间函数
    Delphi7数据库编程之TDataSet(转)
  • 原文地址:https://www.cnblogs.com/gaara-zhang/p/13177896.html
Copyright © 2020-2023  润新知