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
  • 相关阅读:
    HDU 1269 迷宫城堡
    HDU 4771 Stealing Harry Potter's Precious
    HDU 4772 Zhuge Liang's Password
    HDU 1690 Bus System
    HDU 2112 HDU Today
    HDU 1385 Minimum Transport Cost
    HDU 1596 find the safest road
    HDU 2680 Choose the best route
    HDU 2066 一个人的旅行
    AssetBundle管理机制(下)
  • 原文地址:https://www.cnblogs.com/zengyou/p/7541663.html
Copyright © 2011-2022 走看看