zoukankan      html  css  js  c++  java
  • 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加载

  • 相关阅读:
    [C++] 变量
    [C++] 算术类型
    [C++] 回调函数(转)
    [国嵌攻略][095][脚本编程技术]
    [国嵌攻略][094][守护进程设计]
    [国嵌攻略][093][并发服务器设计]
    [国嵌攻略][092][UDP网络程序设计]
    [国嵌攻略][091][TCP网络程序设计]
    [国嵌攻略][090][linux网络编程模型]
    [国嵌攻略][089][网络协议分析]
  • 原文地址:https://www.cnblogs.com/wjx0912/p/4728702.html
Copyright © 2011-2022 走看看