• Lua01 基本语法+数据类型+流程控制+运算符


    一、基本语法

    1、输出

     print("Hello World!")

    2、注释

    --

     3、全局变量

    在默认情况下,变量总是认为是全局的。需要声明,给一个变量赋值后即创建。删除一个全局变量,只需要将变量赋值为nil。

    1. b = nil
    2. print(b) --> nil

     4、局部变量

    Lua 中的变量全是全局变量,哪怕是语句块或是函数里,除非用 local 显式声明为局部变量。

    1. a = 5 -- 全局变量
    2. local b = 5 -- 局部变量

     二、数据类型

    数据类型描述
    nil这个最简单,只有值nil属于该类,表示一个无效值(在条件表达式中相当于false)。
    boolean包含两个值:false和true。
    number表示双精度类型的实浮点数
    string字符串由一对双引号或单引号来表示
    function由 C 或 Lua 编写的函数
    userdata表示任意存储在变量中的C数据结构
    thread表示执行的独立线路,用于执行协同程序
    tableLua 中的表(table)其实是一个"关联数组"(associative arrays),数组的索引可以是数字、字符串或表类型。在 Lua 里,table 的创建是通过"构造表达式"来完成,最简单构造表达式是{},用来创建一个空表。

     三、流程控制-循环

    1、while循环

    1. a=10
    2. while( a < 20 )
    3. do
    4. print("a 的值为:", a)
    5. a = a+1
    6. end

    2、数字for循环

    1. for var=exp1,exp2,exp3 do
    2. <执行体>
    3. end

    exp1 -初始值

    exp2 -结束值

    exp3 -递变值,默认为1。

    1. for i=1,10 do
    2. print(i)
    3. end
    4. -------------------
    5. for i=10,1,-1 do
    6. print(i)
    7. end

    3、泛型for循环

    1. a = {"one", "two", "three"}
    2. for i, v in ipairs(a) do
    3. print(i, v)
    4. end

    i是数组索引值,v是对应索引的数组元素值。ipairs是Lua提供的一个迭代器函数,用来迭代数组。

     四、流程控制-分支

    1、if

    1. if(布尔表达式)
    2. then
    3. --[ 在布尔表达式为 true 时执行的语句 --]
    4. end

    2、if-else 

    1. if(布尔表达式)
    2. then
    3. --[ 布尔表达式为 true 时执行该语句块 --]
    4. else
    5. --[ 布尔表达式为 false 时执行该语句块 --]
    6. end

    3、if-elseif-else 

    1. if( 布尔表达式 1)
    2. then
    3. --[ 在布尔表达式 1true 时执行该语句块 --]
    4. elseif( 布尔表达式 2)
    5. then
    6. --[ 在布尔表达式 2true 时执行该语句块 --]
    7. elseif( 布尔表达式 3)
    8. then
    9. --[ 在布尔表达式 3true 时执行该语句块 --]
    10. else
    11. --[ 如果以上布尔表达式都不为 true 则执行该语句块 --]
    12. end

    五、运算符

    1、算数运算符

    操作符描述实例
    +加法A + B 输出结果 30
    -减法A - B 输出结果 -10
    *乘法A * B 输出结果 200
    /除法B / A 输出结果 2
    %取余B % A 输出结果 0
    ^乘幂A^2 输出结果 100
    -负号-A 输出结果 -10
    //整除运算符(>=lua5.3)5//2 输出结果 2

    2、关系运算符

    操作符描述实例
    ==等于,检测两个值是否相等,相等返回 true,否则返回 false(A == B) 为 false。
    ~=不等于,检测两个值是否相等,不相等返回 true,否则返回 false(A ~= B) 为 true。
    >大于,如果左边的值大于右边的值,返回 true,否则返回 false(A > B) 为 false。
    <小于,如果左边的值大于右边的值,返回 false,否则返回 true(A < B) 为 true。
    >=大于等于,如果左边的值大于等于右边的值,返回 true,否则返回 false(A >= B) 返回 false。
    <=小于等于, 如果左边的值小于等于右边的值,返回 true,否则返回 false(A <= B) 返回 true。

     3、逻辑运算符

    操作符描述实例
    and逻辑与操作符。 若 A 为 false,则返回 A,否则返回 B。(A and B) 为 false。
    or逻辑或操作符。 若 A 为 true,则返回 A,否则返回 B。(A or B) 为 true。
    not逻辑非操作符。与逻辑运算结果相反,如果条件为 true,逻辑非为 false。not(A and B) 为 true。

    4、其它运算符

    操作符描述实例
    ..连接两个字符串a..b ,其中 a 为 "Hello " , b 为 "World", 输出结果为 "Hello World"。
    #一元运算符,返回字符串或表的长度。#"Hello" 返回 5

     

  • 相关阅读:
    基于CodeFormer实现图片模糊变清晰,去除马赛克等效果
    学位类型有哪几种,专业学位和学术型学位区别
    金融云行至“深水区”
    VCS工具学习笔记(3)
    InnoDB对MVCC的实现
    C# Redis NReJSON 实现对RedisJson的使用,听说比ES快500倍
    【考研数学】高等数学第五模块 —— 级数(2,幂级数)
    开源日志分析平台ELK实战应用
    Linux中scp命令详解
    day49数据库 索引 事务
  • 原文地址:https://blog.csdn.net/lidongliangzhicai/article/details/125613376