lua学习贴

来源:互联网 发布:网络音箱哪个牌子好 编辑:程序博客网 时间:2024/05/01 13:36
注释:
        --注释单行
        --[[]] 注释多行

   语句块:  do    end 类似于{}
   数值运算: + - * / ^    ..可以连接两条语句
   比较符号        <        >        <=        >=        ==        ~=
      and 和 or的运算结果不是true和false,而是和它的两个操作数相关。
      a and b:如果a为false,则返回a;否则返回b
      a or b:如果 a 为true,则返回a;否则返回b
    
    function() 也是一种类型,    do       return  end
    local 局部变量,不加就是全局变量。
    
    数据类型:  Number  Nil Boolean String Table userdata、function、thread
    
    变量类型: Nil        空值,所有没有使用过的变量,都是nil。nil既是值,又是类型。
               Boolean        布尔值,只有两个有效值:true和false 在控制结构的条件中除了false和nil为假,其他值都为真
               Number        数值,在Lua里,数值相当于C语言的double
               String字符串,如果你愿意的话,字符串是可以包含"\0"字符的(这和C语言总是以"\0"结尾是不一样的)
               Table        关系表类型,这个类型功能比较强大,请参考后面的内容。
               Function        函数类型, 也就是说,所有的函数,它本身就是一个变量。
               Userdata        嗯,这个类型专门用来和Lua的宿主打交道的。宿主通常是用C和C++来编写的,在这种情况下,Userdata可以是宿主的任意数据类型,常用的有Struct和指针。
               Thread线程类型,在Lua中没有真正的线程。Lua中可以将一个函数分成几部份运行。如果感兴趣的话,可以去看看Lua的文档。
    ------------------------------------------------------------------------------------------------
    Lua会自动在string和number之间自动进行类型转换,当一个字符串使用算术操作时,string会被转成数字
          ..在lua中是字符串连接符。
          
    Table 类似于数组,比如T1 = {}  -- 定义一个空表
                          T1[1]=10  -- 然后我们就可以象C语言一样来使用它了。

                          T1["John"]={Age=27, Gender="Male"}
                               T1.John={}
                               T1.John.Age=27
                               T1.John.Gender="Male"
                            或
                               T1.John{Age=27, Gender="Male"}
    
    条件语句:
            if conditions then
                ////
            end
            if conditions then
                ////
            else
            else
                ////
            end  
    --后执行语句
    while condition do
        ,,,,,,,,,
    end
    --先执行语句
    repeat
        ,,,,,,,,,,,
    until condition
    --
    for i=0,i<4;i=i+1 do
        ,,,,,,,,,,,
    end
    
    function Hello()
        print("hello")
    end
    --有参数
    function SetName(myString)
        name=myString
    end
    --有有限个参数
    function Info(name,age)
        print("your name is ",name)
        print("your age is ",age)
    end
    --有未知个参数
    function HowMany(...)
        if arg.n>0 then
            for i=1,arg.n do
                print(arg[i])
            end
        end
    end
    --可以先有几个参数,后面的随意
    function HowMany(name,id,...)
    end
    
    function ReturnValue(value)
        value*=2
        return value
    end
    --返回多个值
    function ReturnThree(i1,i2,i3)
        return i1,i2,i3
    end
    --_G _G全局环境表(全局变量)
    
    --assert 语句块
    a="hello"
    b="world"
    assert()()
    
    --dofile 打开并且执行一个lua块
    dofile("json/addHero.lua")
    
    --tonumber tostring
    num="1234"
    myNum=tonumber(num)
    
    --string.len("1234")
    myString="hEllo"
    newString=string.sub(myString,1,3) --123
    --格式化字符串
    string.format()
    --查找字符串 返回位置
    string.find("my name is sy","sy") --12
    
    --Array
    myData={}
    myData[0]="f"
    myData[1]=11
    --Hash table
    myData["bar"]="bar"
    --structure
    for k,v in myData do
        print(k.."="..v)  --..是连接符
    end
    
    myPolygon = {
        color=“blue”,
        thickness=2,
        npoints=4;
        {x=0,  y=0},
        {x=-10, y=0},
        {x=-5, y=4},
        {x=0,  y=4}
    }
    print(myPolygon[“color”])
 
    print(myPolygon.color)
    
    print(myPolygon[2].x)   --输出内表的第二个
    
   
0 0
原创粉丝点击