• Lua运算符


    运算符是告诉解释器执行特定数学或逻辑操作的符号。 Lua语言内置运算符丰富,并提供以下类型的运算符 -

    • 算术运算符
    • 关系运算符
    • 逻辑运算符
    • 其它运算符

    本教程将逐一解释算术,关系,逻辑和其他杂项运算符。

    1. 算术运算符

    下表显示了Lua语言支持的所有算术运算符。 假设变量A=10,变量B=20,然后 -

    运算符

    描述

    示例

    +

    相加两个操作数

    A + B = 30

    -

    从第一个减去第二个操作数

    A - B = -10

    *

    将两个操作数相乘

    A * B = 200

    /

    用除分子除以分子

    B / A = 2

    %

    模数运算符,整数除法后的余数

    B % A = 0

    ^

    指数运算符取指数幂值

    A^2 = 100

    -

    一元,充当否定

    -A = -10

     

    2. 关系运算符

    下表显示了Lua语言支持的所有关系运算符。 假设变量A=10,变量B=20,然后 -

    运算符

    描述

    示例

    ==

    检查两个操作数的值是否相等,如果相等,则条件变为真。

    (A == B)结果为false

    ~=

    检查两个操作数的值是否相等,如果值不相等则条件变为true

    (A ~= B)结果为true

    > 

    检查左操作数的值是否大于右操作数的值,如果是,则条件变为true

    (A > B)结果为false

    < 

    检查左操作数的值是否小于右操作数的值,如果是,则条件变为true

    (A < B)结果为true

    >=

    检查左操作数的值是否大于或等于右操作数的值,如果是,则条件变为true

    (A >= B)结果为false

    <=

    检查左操作数的值是否小于或等于右操作数的值,如果是,则条件变为true

    (A <= B)结果为true

     

    3. 逻辑运算符

    下表显示了Lua语言支持的所有逻辑运算符。 假设变量A=true,变量B=false,则 -

    运算符

    描述

    示例

    and

    逻辑与运算符。如果两个操作数都不为零,则条件成立。

    (A and B) 结果为false

    or

    逻辑或运算符。 如果两个操作数中的任何一个不为零,则条件变为真。

    (A or B) 结果为true

    not

    逻辑非运算符。用于反转其操作数的逻辑状态。 如果条件为真,则逻辑非运算符将为false

    !(A and B)结果为true

     

    4. 杂项运算符

    Lua语言支持的其他运算符包括连接和长度。

    编号

    描述

    示例

    ...

    连接两个字符串

    如果aHellobWorlda..b将返回Hello World

    #

    返回字符串或表长度的一元运算符。

    #"Hello" 将返回 5

     

    5. Lua运算符优先级

    运算符优先级确定表达式中的术语分组。 这会影响表达式的计算方式。 某些运算符的优先级高于其他运算符; 例如,乘法运算符的优先级高于加法运算符 -

    例如,x = 7 + 3 * 2; 这里x赋值为13,而不是20,因为运算符 * 的优先级高于+,所以它首先乘以3 * 2然后再加上7

    此处,具有最高优先级的运算符显示在表的顶部,具有最低优先级的运算符显示在底部。 在表达式中,将首先评估更高优先级的运算符。

    类别

    操作符

    关联性

    一元

    not # -

    右到左

    连接

    ..

    右到左

    乘法

    * / %

    左到右

    加法

    + -

    左到右

    关系

    < > <= >= == ~=

    左到右

    相等

    == ~=

    左到右

    逻辑与

    and

    左到右

    逻辑或

    or

    左到右

  • 相关阅读:
    RTMP协议安防视频直播点播平台EasyDSS点播目录绑定用户接口无响应问题排查
    RTMP协议安防视频平台EasyDSS在Linux下运行提示-bash .start.sh Permission denied问题解决
    RTMP协议视频直播点播平台EasyDSS内Go语言使用反射优化代码技巧说明
    IP摄像头RTMP协议互联网直播点播平台EasyDSS配置录像/直播计划无法生效是什么原因?
    将IP网络摄像头通过RTMP协议推送到视频直播点播平台EasyDSS时,如何通过抓包RTMP协议保存视频流为H264文件
    hdu2795 Billboard 线段树
    hdu1394 Minimum Inversion Number 线段树和树状数组
    poj 3468 A Simple Problem with Integers 线段树
    CF round #292 解题报告
    棋盘问题 poj1321
  • 原文地址:https://www.cnblogs.com/gd-luojialin/p/10962725.html
Copyright © 2020-2023  润新知