• lua基础学习(二)


    一,Lua变量

     
    1.lua变量的三种类型:全局变量,局部变量,表中的域
    Lua 中的变量全是全局变量,那怕是语句块或是函数里,除非用 local 显式声明为局部变量。
    局部变量的作用域为从声明位置开始到所在语句块结束。
    变量的默认值均为 nil。
     
    如: a=5 -- 全局变量
    local b = 5 --局部变量
    在函数里:
    function demo()
    c = 5 --全局变量
    local d = 5 -- 局部变量
     
    2.变量赋值
    a = "hello".."world"
    b = 1
    。。。。
     
    Lua可以对多个变量同时赋值,变量列表和值列表的各个元素用逗号分开,赋值语句右边的值会依次赋给左边的变量。
    a, b = 10, 2 <--> a=10; b=2
     
    遇到赋值语句Lua会先计算右边所有的值然后再执行赋值操作,所以我们可以这样进行交换变量的值:
     
    x, y = y, x 交换赋值 -- swap 'x' for 'y'
     
    当变量个数和值的个数不一致时,Lua会一直以变量个数为基础采取以下策略:
    1. 变量个数 > 值的个数 按变量个数补足nil 2. 变量个数 < 值的个数 多余的值会被忽略
     
    如: a, b, c = 0, 1 print(a,b,c) --> 0 1 nil
     
    a, b = 1,2, 3 -- 3将被忽略 print(a,b) --> 1 2
    多值赋值经常用来交换变量,或将函数调用返回给变量:
    a, b = function()
    f()返回两个值,第一个赋给a,第二个赋给b。
    应该尽可能的使用局部变量,有两个好处:
    1. 避免命名冲突。
    2. 访问局部变量的速度比全局变量更快。
     

    二,循环

    1.while循环: 在条件为 true 时,让程序重复地执行某些语句。执行语句前会先检查条件是否为 true。
    语法: while(condition) do statements end
    如:
    a=10 while( a < 20 ) do print("a 的值为:", a) a = a+1 end
     
    2.for循环: 重复执行指定语句,重复次数可在 for 语句中控制。
    (1).一般for循环
    语法:
    for var=exp1,exp2,exp3 do <执行体> end
    var从exp1变化到exp2,每次变化以exp3为步长递增var,并执行一次"执行体"。exp3是可选的,如果不指定,默认为1。
    function f(x) print("function") return x*2 end for i=1,f(5) do print(i) end
     
    (2).泛型for循环
    语法: for i,v in ipairs(a)     do print(v) end
    i是数组索引值,v是对应索引的数组元素值。ipairs是Lua提供的一个迭代器函数,用来迭代数组。
    pairs 用来迭代字符数组。
     
    3.repeat...until循环
    语法:
    repeat statements until( condition )
    --[ 变量定义 --] a = 10 --[ 执行循环 --] repeat print("a的值为:", a) a = a + 1 until( a > 15 )
    循环条件判断语句(condition)在循环体末尾部分,所以在条件进行判断前循环体都会执行一次。
     
    4.循环嵌套
    (1).Lua 编程语言中 for 循环嵌套语法格式:
    for init,max/min value, increment do for init,max/min value, increment do statements end statem ents end
     
    (2).Lua 编程语言中 while 循环嵌套语法格式:
    while(condition) do while(condition) do statements end statements end
     
    (3).Lua 编程语言中 repeat...until 循环嵌套语法格式:
    repeat statements repeat statements until( condition ) until( condition )
     
     
    5.无线循环,俗称死循环,以while为列:
    while( true ) do print("循环将永远执行下去") end
     

    三,流程控制

     
    1.if
    控制结构的条件表达式结果可以是任何值,Lua认为false和nil为假,true和非nil为真。
    语法:
    (1).if
    if(布尔表达式) then --[ 布尔表达式为 true 时执行该语句块 --] end
     
    (2)if-else
    if(布尔表达式) then --[ 布尔表达式为 true 时执行该语句块 --] else --[ 布尔表达式为 false 时执行该语句块 --] end
    (3) if-else-if-else
    if( 布尔表达式 1) then --[ 在布尔表达式 1 为 true 时执行该语句块 --] elseif( 布尔表达式 2) then --[ 在布尔表达式 2 为 true 时执行该语句块 --] elseif( 布尔表达式 3) then --[ 在布尔表达式 3 为 true 时执行该语句块 --] else --[ 如果以上布尔表达式都不为 true 则执行该语句块 --] end
     
     
     
     
     
     
     
     
     
     
     

  • 相关阅读:
    Github开源人脸识别项目face_recognition
    yolo源码解析(3):进行简单跳帧
    [转]详细解读TrueSkill 排名系统
    yolo源码解析(3):视频检测流程
    Java中replace和replaceall的区别
    对input输入框日期显示格式化
    Eclipse修改编码字体
    Eclipse修改控制台字体
    Eclipse文档注释导出doc
    数组的定义方式及初始化
  • 原文地址:https://www.cnblogs.com/Seeasunnyday/p/9356219.html
Copyright © 2020-2023  润新知