zoukankan      html  css  js  c++  java
  • [lua]笔记

    --单行注释
    --[[
    多行注释
    --]]
    
    -- 默认全局变量
    a = "I am yoyo!" 
    print(a) --I am yoyo!
    print(b) --nil
    a = nil  --删除一个全局变量
    print(a)      --> nil
    
    -- local 局部变量,访问局部变量的速度比全局变量更快,尽量使用局部变量
    local c = 5        
    function joke()
        d = 5           -- 全局变量
        local e = 6     -- 局部变量
    end
    joke()
    print(d, e)          --> 5 nil
    
    do 
        local a = 6     -- 局部变量
        b = 6           -- 全局变量
        print(a,b);     --> 6 6
    end
    print(a,b)      --> 5 6
    
    --赋值
    a, b = 10, 2*x       <-->       a=10; b=2*x 可以多个赋值
    
    --会先计算右边所有的值,再赋值
    x, y = y, x                     -- swap 'x' for 'y'
    a[i], a[j] = a[j], a[i]         -- swap 'a[i]' for 'a[j]'
    
    -- 右边值不够,nil补足
    a, b, c = 0, 1
    print(a,b,c)             --> 0   1   nil
    -- 右边值过多,忽略
    a, b = a+1, b+1, b+2     -- value of b+2 is ignored
    print(a,b)               --> 1   2
    
    -- 数据类型:nil boolean string number function userdata thread table
    
    print(type(10.4*3))             --> number
    print(type(print))              --> function
    print(type(type))               --> function
    print(type(true))               --> boolean, true-真 false和nil为假
    print(type(nil))                --> nil
    
    -- 数据类型:string
    print(type(type(X)))            --> string
    print(type("Hello world"))      --> string

    -- 单引号内:string
    string2 = 'runoob.com'
    print("字符串 2 是",string2)
    -- 可以用 2 个方括号 "[[]]" 来表示"一块"字符串
    html = [[
    <html>
    <head>
    </head>
    <body>
    </body>
    </html>
    ]]
    
    print("2" + 6) --8.0 对字符进行算术操作,会将字符转为数字
    
    -- ..表示字符串连接操作
    print("a" .. 'b') --ab 
    print(157 .. 428) --157428
    
    -- # 计算字符串的长度
    len = "www.runoob.com"
    print(#len) --14
    
    -- 数据类型:table
    
    -- 创建一个空的 table
    local tbl1 = {}
    
    -- 直接初始表
    local tbl2 = {"apple", "pear", "orange", "grape"}
    
    
    
    --可以是map,类型可以并存,不存在key,则value为nil
    a = {}
    a["key"] = "value"
    --当索引为字符串类型时,可以使用 a.key
    key = 10
    a[key] = 22
    a[key] = a[key] + 11
    
    for k, v in pairs(a) do
        print(k .. " : " .. v)
        --key : value
         --10 : 33
    end
    
    -- table索引以 1 开始
    local tbl = {"apple", "pear", "orange", "grape"}
    for key, val in pairs(tbl) do
        print("Key", key)
        --Key    1
        --Key    2
        --Key    3
        --Key    4
    end
    
    -- 数据类型:function
    function factorial1(n)
        if n == 0 then
            return 1
        else
            return n * factorial1(n - 1)
        end
    end
    print(factorial1(5)) --120
    factorial2 = factorial1
    print(factorial2(5)) --120
    
    --函数可以作为参数传入
    function testFun(tab,fun)
        for k ,v in pairs(tab) do
            print(fun(k,v));
        end
    end
    
    tab={key1="val1",key2="val2"};
    testFun(tab,
    function(key,val) --匿名函数
        return key.."="..val;
        --key1 = val1
        --key2 = val2
    end
    );
    
    -- 数据类型:thread
  • 相关阅读:
    Microsoft.NET Framework 全面开源
    SqlCommandBuilder笔记[原]
    C#几种排序方法的整理[原]
    无聊用js写了一个模拟的购物车[原]
    Visio2005数据库建模视频[原]
    JavaScript读取XML文件[整理]
    IIS中对NetFrameWork进行注册
    时间不等人 创业准备开始了
    用CSS和HTML标签来截取过长的文字部分变成省略号
    C#在SQl中存取图片image[原]
  • 原文地址:https://www.cnblogs.com/zengyou/p/7541663.html
Copyright © 2011-2022 走看看