• lua学习记录


    1.八种数据类型:number,string,boolean,nil,function,table,协程,自定义类型
    空字符串和数字0是真,false和nil为假
    2.lua是动态语言,每个变量携带自己的类型,可以运行时类型转换,print(type(my_var))得到类型
    3.不格式化的字符串:print([[aa]]);print([==[[a]]==]),注释也可以用--[==[和--]==]
    4.tonumber,tostring,#得到字符串长度
    5.理解数组:a={x=10, y=45; "one", "tow", "three"}
    for i,v in pairs(a) do print(i,v) end
    6.local foo1 = foo1 局部变量拷贝自全局变量
    7.常用的控制流程:if_else_then,while_do_end,repeat_until,for_do_end
    8.函数的参数如果是字符串或者数字,圆括号可有可无
    9.lua提供了冒号操作符模仿面向对象的调用:string.byte(data,i)等价于data:byte(i)前提是type(data)是string
    这是lua提供的语法糖,function的写法也是一种语法糖,使得代码看起来像pascal
    10.闭包的例子

    function Create(n)
       local function foo1()
          print(n)
       end
    
       local function foo2()
          n = n + 10
       end
    
       return foo1,foo2
    end
    f1,f2 = Create(1979)
    f1() -- 打印1979
    f2()
    f1() -- 打印1989
    f2()
    f1() -- 打印1999

    上面代码来自:http://www.cnblogs.com/effort-rookie/archive/2012/10/10/2718023.html
    闭包:就是函数加上‘局部变量’的控制块,理解局部变量的生存周期;闭包可对应设计模式的工厂模式;
    函数是编译时(静态),闭包是运行时(动态);对象是附有行为的数据,而闭包是附有数据的行为
    11.当函数最后一个动作是调用另外一个函数时,我们称这种调用尾调用,相当于goto所以不需要额外的堆栈空间
    12.package.loadlib: 从dll或者so引用函数;lua-5.3去掉了package.seeall
    13.require先从环境变量找*.lua,再找库*.dll(或*.so),如果是库就用package.loadlib加载

  • 相关阅读:
    springboot使用hibernate validator校验
    @Inherited:允许子类继承父类的注解。
    springboot跨域配置
    spring boot——MockMvc的用法 (SpringBoot 1.5.18)下测试通过
    spring boot(10) 基础学习内容
    关于Spring @RequestBody 自动映射模型原理
    @Requestbody@ApiParam @PathVariable @RequestParam三者区别
    《生成对抗网络入门指南【2】》
    《生成对抗网络入门指南【1】》
    《精通 CSS3 动画(学完这个课写炫酷页面)》
  • 原文地址:https://www.cnblogs.com/wjx0912/p/4728702.html
Copyright © 2020-2023  润新知