zoukankan      html  css  js  c++  java
  • lua 学习

    1、lua 只有false和nil视为假,其他都为真

    2、lua 没有整数类型,只有浮点型,一般用双精度浮点型表示整形数

    3、可以用一对匹配的双括号界定一个字母字符串,类似于块注释

    [[

    abc

    deeff

    ]]

    4、lua支持运行时字符串与数字的自动转换

    print("11"+1);

    12

    print(11 .. 22);

    1122

    tonumber - 字符串转数字

    tostring -数字转字符串

    #获取字符串长度

    5、table 关联数组

    是对象

    初始化 a = {}

    可以用数字索引,也可以用其他类型索引数字索引从1开始

    #a代表最后一个索引

    for i=1,#a do

        print(i);

    end

    lua 用nil作为数组的结束标志

    a = {x=10,y=11}

    print(a.x);

    10

    a.x相当于a["x"]

    {x=10,y=11}等价于{["x"]=10,["y"]=11}

    6、操作符 .. ^和是右结合,其他都是左结合

    7、交换两个值

    x,y=y,x

    8、代码块do ... end

    do

    在lua终端交互模式下,使用local 变量时,就用到它

    end

    9、if语句

    if    then

    elseif   then

    else

    end

    10、repeat  ... until

    相当于do ... while

    11、while

    while  ... do

    end

    12、for循环

    数字型

    for var=exp1,exp2,exp3 do

    循环体

    end

    var 从exp1,以exp3位步长循环,直到exp2,exp3默认1

    无限循环

    for i=1,math.huge do

    end

    泛型

    for i in v do .. end

    遍历table

    for i,v in ipairs(a) do

    print(i,v)

    end

    13、函数参数默认值

    function test(n)

    n = n or 1

    count = count + n

    return count

    end

    14、unpack 用于向函数传入动态数量参数

    f=string.find

    a={"hello", "ll"}

    f(unpack(a))

    3,4

    15、变长参数

    function foo (a,b ...)

    local arg = {...};arg.n = select("#", ...)

    end

    16、闭合函数

    function (n1,n2) return n1+n2 end

    17、非全局的函数

    Lib ={}

    Lib.foo = function (x,y) return x+y end

    Lib.goo = function (x,y) return x-y end

    Lib = {

    foo = function (x,y) return x+y end,

    goo = function (x,y) return x-y end

    }

    Lib = {}

    function Lib.foo = (x,y) = return x+y end

    function Lib.goo = (x,y) = return x-y end

    18、尾递归

    一个函数调用另一个函数之后,再无其他事情可做

    function foo(n)

    if n > 0 then return foo(n-1) end

    end

    19、迭代器与泛型for

    a={"one","two","three"}

    for i,v in ipairs(a) do

    print(i,v)

    end

    for var_1 ...,var_n in <eexplist> do block end

    <explist> = f,s,var

    f,迭代函数,s,恒定状态,var,控制变量的初值

  • 相关阅读:
    Java StringBuilder、基本类型的包装类
    立个Flag不学好PHP誓不罢休
    LAMP搭建 转
    CentOS使用yum源中自带的rpm包安装LAMP环境
    CentOS RedHat YUM 源扩展补充(32位、64位均有)
    解决phpmyadmin上传文件大小限制的配置方法
    lanmp v2.5一键安装包发布(包括lamp,lnmp,lnamp安装)
    图像处理 jpg png gif svg
    NAT模式/路由模式/全路由模式 (转)
    网页制作中绝对路径和相对路径的区别
  • 原文地址:https://www.cnblogs.com/yanwei-wang/p/6003316.html
Copyright © 2011-2022 走看看