• Lua 笔记6


    1. 交互模式运行lua时,由于一行就是一个命令,当用到局部变量就行不通了。可以采用do end。do命令执行后,匹配到end才结束。
    2. 局部变量比全局变量快。局部变量随着其作用域结束而消失,垃圾收集器能将其释放。
    3. 常用用法:local foo = foo -- 声明了一个局部变量 foo 然后用全局变量 foo 对其赋初值
    .在在需要提高对 foo 的访问速度时很有用。
    .当其他函数改变了全局变量foo的值,而代码段又需要保留foo的原始值时,这个用法也很有用,尤其是在进行运行时动态替换(monkey patching,猴子补丁)时:即使
    其他代码把print动态替换成了其他函数,在local print = print 语句之前的所有代码使用的还都是原先的 print 函数。
    4. 有些人认为在代码块的中间位置声明变量是一个不好的习惯:实际上:我们很少会在不赋初值的情况下声明变量,在需要时才声明变量可以避免漏掉初始化这个变量。
    此外,通过缩小变量的作用域还有助于提高代码的可读性。
    5. 和大多数其他编程语言不同,在Lua语言中,循环体内声明的局部变量的作用域包括测试条件:
    repeat 
          sqr= (sqr+ x/sqr) / 2 
          local error= math.abs(sqr^2 - X) 
    until error < x/1000      -- 局部变量 'error' 此时仍然可见
    
    6. 泛型for,比如pairs。可以使用多个变量,第一个变量变为 nil 时,循环终止。
    7. 不需要在没有返回值的函数加return语句:所有函数最后都隐含return。
    8. 代码中间插入return使用do代码块:do return end
    9. goto 标签,代替lua语言中没有的 continue、多级 break、 多级 continue、 redo 和局部错误处理等。
    标签遵循常见的可见性规则:不能直接跳转到一个代码块中的标签 (因为代码块中的标签对外不可见 )。不能跳转到函数外。不能跳转到局部变量的作用域。
    10. 比较数据驱动编程(使用表来描述)和 goto编程(很少欣赏到,通体的流畅性有很大的弊端)。
  • 相关阅读:
    OD 实验(十三)
    第一个 Windows 界面程序
    C 语言
    C 语言
    OD 实验(十二)
    PowerShell 常用命令
    OD 实验(十一)
    OD 实验(十)
    redis
    memcached缓存系统
  • 原文地址:https://www.cnblogs.com/gaara-zhang/p/13204454.html
Copyright © 2020-2023  润新知