• Lua学习笔记(二)


    Lua变量

    --[[
    Lua变量三种类型:全局变量(储存在名称为_G的table中)、局部变量、table中的域
    Lua中的变量全都是全局变量,即使在语句块或函数里,除非用local显式声明为局部变量
    局部变量作用域与C/C++概念相同
    变量默认值为nil
    ]]
    -- test.lua文件脚本
    a=1			-- 全局变量
    local b=2	-- 文件内局部变量
     
    function rua()
        c=5			-- 全局变量
        local d=6	-- 局部变量
    end
    
    rua()
    print(c,d)		--输出:5 nil
    
    do
        local a=6	-- 局部变量,这里局部变量覆盖了全局变量,引用外部全局变量时可以用_G.a来引用,类似于C/C++的::a
        b=6			-- 对局部变量重新赋值
        print(a,b)	-- 输出:6 6
    end
    
    print(a,b)		-- 输出:5 6
    

    赋值语句

    -- 赋值可以改变一个变量的值和表域
    a="hello" .. "world"
    t.n=t.n+1
    -- 可以对多个变量同时赋值
    a,b=10,2*x		-- a=10,b=2*x
    -- 赋值语句会先计算右边所有的值,然后再执行赋值操作
    -- 交换变量写法
    x,y=y,x
    --[[
    变量和值个数不一致:
    变量个数>值的个数		按变量个数补足nil
    变量个数<值的个数		多余的值被忽略
    ]] 
    a,b,c=0
    print(a,b,c)	-- 输出:0 nil nil
    

    索引

    -- table的索引使用方括号[]和点.的操作
    t[i]
    t.i					-- 当索引为字符串类型时的一种简化写法
    gettable_event(t,i)	-- 采用索引访问本质上是一个类似这样的函数调用
    

    Lua循环

    while循环

    while(condition) do
        -- do something
    end
    

    数值for循环

    -- var从exp1变化到exp2,每次变化以exp3为步长,可选,不指定默认为1
    for var=exp1,exp2,[exp3] do
        -- do something
    end
    

    泛型for循环

    -- 相当于foreach
    a={"a","b","c"}
    for i,v in ipairs(a) do
        print(i,v)
    end
    

    repeat...until循环

    -- 相当于C/C++的do...while
    repeat
        -- do something
    until(condition)
    

    break语句

    -- Lua仅支持break,不支持continue,同其他语言
    while(condition) do
        break
    end
    

    Lua流程控制

    if语句

    if(condition) then
        -- do something
    end
    

    if...else语句

    -- 两条分支
    if(condition) then
        -- do something
    else
        -- do something
    end
    
    -- 多条分支
    if(condition1) then
        -- do something
    elseif(condition2) then
        -- do something
    else
        -- do something
    end
    
  • 相关阅读:
    13 | 效率为王:脚本与数据的解耦 + Page Object模型
    关于编程与生活
    我的python学习笔记
    Tarjan学习笔记
    web----https请求过程
    JVM----堆内存设置原理
    算法----快速排序
    SpringCloud----spring security Oauth2认证解决方案
    Mysql----insert/update/delete
    课外知识----单点登录
  • 原文地址:https://www.cnblogs.com/JaxesZ/p/11216994.html
Copyright © 2020-2023  润新知