zoukankan      html  css  js  c++  java
  • 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编程(很少欣赏到,通体的流畅性有很大的弊端)。
  • 相关阅读:
    如何自定义iOS中的控件
    NSArray中的对象进行排序
    微信摇动代码
    思考面向对象
    网络编程 socket编程
    iOS RUN LOOP 是个什么东西?
    iOS runloop 自定义输入源
    iPhone开发资源汇总
    UISearchBar
    重学STM32---(八)----SDIO
  • 原文地址:https://www.cnblogs.com/gaara-zhang/p/13204454.html
Copyright © 2011-2022 走看看