六、Lua 运算符
文章目录
- 一、Lua 运算符
- (一)算术运算符
- (二)关系运算符
- (三)逻辑运算符
- (四)其他运算符
- 二、运算符优先级
一、Lua 运算符
运算符是一个特殊的符号,用于告诉解释器执行特定的数学或逻辑运算。Lua提供了以下几种运算符类型:
(一)算术运算符
表列出了 Lua 语言中的常用算术运算符,设定 A 的值为10,B 的值为 20:

a = 21
b = 10
c = a + b
print("Line 1 - c 的值为 ", c )
c = a - b
print("Line 2 - c 的值为 ", c )
c = a * b
print("Line 3 - c 的值为 ", c )
c = a / b
print("Line 4 - c 的值为 ", c )
c = a % b
print("Line 5 - c 的值为 ", c )
c = a^2
print("Line 6 - c 的值为 ", c )
c = -a
print("Line 7 - c 的值为 ", c )

在 lua 中,/ 用作除法运算,计算结果包含小数部分,// 用作整除运算,计算结果不包含小数部分:
a = 5
b = 2print("除法运算 - a/b 的值为 ", a / b )
print("整除运算 - a//b 的值为 ", a // b )

(二)关系运算符
下表列出了 Lua 语言中的常用关系运算符,设定 A 的值为10,B 的值为 20:

a = 21
b = 10if( a == b )
thenprint("Line 1 - a 等于 b" )
elseprint("Line 1 - a 不等于 b" )
endif( a ~= b )
thenprint("Line 2 - a 不等于 b" )
elseprint("Line 2 - a 等于 b" )
endif ( a < b )
thenprint("Line 3 - a 小于 b" )
elseprint("Line 3 - a 大于等于 b" )
endif ( a > b )
thenprint("Line 4 - a 大于 b" )
elseprint("Line 5 - a 小于等于 b" )
end-- 修改 a 和 b 的值
a = 5
b = 20
if ( a <= b )
thenprint("Line 5 - a 小于等于 b" )
endif ( b >= a )
thenprint("Line 6 - b 大于等于 a" )
end

(三)逻辑运算符

a = true
b = trueif ( a and b )
thenprint("a and b - 条件为 true" )
endif ( a or b )
thenprint("a or b - 条件为 true" )
endprint("---------分割线---------" )-- 修改 a 和 b 的值
a = false
b = trueif ( a and b )
thenprint("a and b - 条件为 true" )
elseprint("a and b - 条件为 false" )
endif ( not( a and b) )
thenprint("not( a and b) - 条件为 true" )
elseprint("not( a and b) - 条件为 false" )
end

(四)其他运算符

我们可以通过以下实例来更加透彻的理解连接运算符与计算表或字符串长度的运算符的应用:
a = "Hello "
b = "World"print("连接字符串 a 和 b ", a..b )print("b 字符串长度 ",#b )print("字符串 Test 长度 ",#"Test" )print("长度 ",#"www.wonyoung.com" )

二、运算符优先级
^
not - (unary)
* / %
+ -
..
< > <= >= ~= ==
and
or
除了 ^ 和 … 外所有的二元运算符都是左连接的。
a+i < b/2+1 <--> (a+i) < ((b/2)+1)
5+x^2*8 <--> 5+((x^2)*8)
a < y and y <= z <--> (a < y) and (y <= z)
-x^2 <--> -(x^2)
x^y^z <--> x^(y^z)
a = 20
b = 10
c = 15
d = 5e = (a + b) * c / d;-- ( 30 * 15 ) / 5
print("(a + b) * c / d 运算值为 :",e )e = ((a + b) * c) / d; -- (30 * 15 ) / 5
print("((a + b) * c) / d 运算值为 :",e )e = (a + b) * (c / d);-- (30) * (15/5)
print("(a + b) * (c / d) 运算值为 :",e )e = a + (b * c) / d; -- 20 + (150/5)
print("a + (b * c) / d 运算值为 :",e )

相关文章:
六、Lua 运算符
文章目录 一、Lua 运算符(一)算术运算符(二)关系运算符(三)逻辑运算符(四)其他运算符 二、运算符优先级 一、Lua 运算符 运算符是一个特殊的符号,用于告诉解释器执行特定…...
Android frameworks 开发总结十一
1.修改GMS的setup wizard 1.1 找到需要修改的文件 打开vendor/partner_gms/apps/GmsSampleIntegration/res/values/config.xml文件。以Arashi R为例: <resources><string name="wizard_script_uri" translatable="false">android.resource…...
学嵌入式,已经会用stm32做各种小东西了,下一步是什么
学嵌入式,已经会用stm32做各种小东西了,下一步是什么,研究stm32的内部吗? 针对题主这种类型的,首先我想提出几个技术问题。 1,除了那几个常用的外设,stm32上集成的众多外设是否都有实际的使用经…...
Java面试题10
1.MyBatis 中 #{}和 ${}的区别是什么? #{} 是预编译的占位符,MyBatis会将其转化为一个占位符参数,安全性较高,可以防止 SQL注入; ${} 是字符串替换,直接将内容替换到SQL语句中,不会进行参数处理…...
DBeaver连接MySQL提示“Public Key Retrieval is not allowed“问题解决方式
更新时间:2023年10月31日 11:37:53 作者:产品人小柒 dbeaver数据库连接工具,可以支持几乎所有的主流数据库.mysql,oracle.sqlserver,db2 等等,这篇文章主要给大家介绍了关于DBeaver连接MySQL提示"Public Key Retrieval is not allowed"问…...
振弦式轴力计和振弦采集仪组成的安全监测解决方案
振弦式轴力计和振弦采集仪组成的安全监测解决方案 振弦式轴力计和振弦采集仪是一种常用的结构安全监测工具,可以用于评估建筑物、桥梁、隧道或其他结构的结构健康状态和安全性能。这种监测方案较为先进、精确,并且能够监测长期的结构反应,因此…...
卡尔曼滤波
通过 Eigen 矩阵运算实现线性卡尔曼滤波。模拟的是一辆带火箭发动机的汽车,一开始沿着X轴匀速运动,到X轴中间开启火箭发动机匀加速向Y轴起飞。同理可以仿真(x,y,z,yaw,pitch,raw) 6自由度的真实飞行情况 #include <iostream&g…...
不受平台限制,Sketch 网页版震撼登场
Sketch 是一种基于 Mac 的矢量图形编辑器,可用于数字设计。其主要功能包括无损矢量编辑、完美像素精度和数百个插件同步功能,可导出预设和代码。它是目前流行的页面交互协作设计工具。但是 Sketch 最大的缺点是对 Windows/PC 用户不友好。严格来说&#…...
如何使用.pth训练模型
一.使用.pth训练模型的步骤如下: 1.导入必要的库和模型 import torch import torchvision.models as models# 加载预训练模型 model models.resnet50(pretrainedTrue) 2.定义数据集和数据加载器 # 定义数据集和数据加载器 dataset MyDataset() dataloader to…...
C++11线程以及线程同步
C11中提供的线程类std::thread,基于此类创建一个新的线程相对简单,只需要提供线程函数和线程对象即可 一.命名空间 this_thread C11 添加一个关于线程的命名空间std::this_pthread ,此命名空间中提供四个公共的成员函数; 1.1 get_id() 调用命名空间s…...
深度学习之基于YoloV3杂草识别系统
欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 深度学习在图像识别领域已经取得了显著的成果,其中基于YOLO(You Only Look Once)…...
Linux 命令vim(编辑器)
(一)vim编辑器的介绍 vim是文件编辑器,是vi的升级版本,兼容vi的所有指令,同时做了优化和延伸。vim有多种模式,其中常用的模式有命令模式、插入模式、末行模式:。 (二)vim编辑器基本操作 1 进入vim编辑文件 1 vim …...
轻松配置PPPoE连接:路由器设置和步骤详解
在家庭网络环境中,我们经常使用PPPoE(点对点协议过夜)连接来接入宽带互联网。然而,对于一些没有网络专业知识的人来说,配置PPPoE连接可能会有些困难。在本文中,我将详细介绍如何轻松配置PPPoE连接ÿ…...
电源控制系统架构(PCSA)之系统分区电源域
目录 4.2 电源域 4.2.1 电源模式 4.2.2 电源域的选择 4.2.3 系统逻辑 4.2.4 Always-On域 4.2.5 处理器Clusters 4.2.6 CoreSight逻辑 4.2.7 图像处理器 4.2.8 显示处理器 4.2.9 其他功能 4.2.10 电源域层次结构要求 4.2.11 SOC域示例 4.2 电源域 电源域在这里被定…...
Linux:docker基础操作(3)
docker的介绍 Linux:Docker的介绍(1)-CSDN博客https://blog.csdn.net/w14768855/article/details/134146721?spm1001.2014.3001.5502 通过yum安装docker Linux:Docker-yum安装(2)-CSDN博客https://blog.…...
【Axure教程】用中继器制作卡片多条件搜索效果
卡片设计通过提供清晰的信息结构、可视化吸引力、易扩展性和强大的交互性,为用户界面设计带来了许多优势,使得用户能够更轻松地浏览、理解和互动。 那今天就教大家如何用中继器制作卡片的模板,以及完成多条件搜索的效果,我们会以…...
Linux中vi常用命令-批量替换
在日常服务器日志查看中常用到的命令有grep、tail等,有时想查看详细日志,用到vi命令,记录下来,方便查看。 操作文件:test.properites 一、查看与编辑 查看命令:vi 文件名 编辑命令:按键 i&…...
logback-spring.xml的内容格式
目录 一、logback-spring.xml 二、Logback 中的三种日志文件类型 一、logback-spring.xml <?xml version"1.0" encoding"UTF-8"?> <configuration scan"true" scanPeriod"10 seconds" ><!-- <statusListener…...
nodejs+vue+elementui+express青少年编程课程在线考试系统
针对传统线下考试存在的老师阅卷工作量较大,统计成绩数据时间长等问题,实现一套高效、灵活、功能强大的管理系统是非常必要的。该系统可以迅速完成随机组卷,及时阅卷、统计考试成绩排名的效果。该考试系统要求:该系统将采用B/S结构…...
Navicat 技术指引 | GaussDB 数据查看器
Navicat Premium(16.2.8 Windows版或以上) 已支持对GaussDB 主备版的管理和开发功能。它不仅具备轻松、便捷的可视化数据查看和编辑功能,还提供强大的高阶功能(如模型、结构同步、协同合作、数据迁移等),这…...
OpCore-Simplify:智能配置黑苹果系统的自动化工具与零代码部署方案
OpCore-Simplify:智能配置黑苹果系统的自动化工具与零代码部署方案 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify OpCore-Simplify是一款…...
用快马AI一键复现网鼎杯wp:快速生成漏洞验证脚本原型
作为一名网络安全爱好者,最近在复盘网鼎杯CTF比赛时发现,很多解题思路(wp)虽然写得详细,但实际动手复现时还是会遇到各种环境配置和代码调试的问题。正好尝试用InsCode(快马)平台的AI辅助功能快速生成验证脚本…...
claw-code 源码详细分析:命令宇宙 vs 工具宇宙——`commands` / `tools` 镜像清单如何驱动路由与 shim 执行?
涉及源码:src/reference_data/commands_snapshot.json、tools_snapshot.json,src/commands.py、src/tools.py、src/execution_registry.py、src/runtime.py、src/main.py,src/models.py(PortingModule)。1. 「两个宇宙…...
如何用Sunshine搭建免费游戏串流服务器:终极指南
如何用Sunshine搭建免费游戏串流服务器:终极指南 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 还在为无法在不同设备上畅玩PC游戏而烦恼吗?Sunshine开源游…...
通义千问1.5-1.8B-Chat-GPTQ-Int4 WebUI 集成Dify实战:构建可视化AI应用工作流
通义千问1.5-1.8B-Chat-GPTQ-Int4 WebUI 集成Dify实战:构建可视化AI应用工作流 你是不是也遇到过这样的场景:手头有一个不错的AI模型,比如部署好的通义千问,想把它变成一个能解决实际业务问题的应用,比如一个智能客服…...
GLM-4.7-Flash效果展示:自动生成极客日报风格技术文章
GLM-4.7-Flash效果展示:自动生成极客日报风格技术文章 1. 引言:当AI遇见技术写作 技术写作从来都不是件容易的事。你需要深入理解技术细节,又要能用通俗易懂的语言表达出来,还得保持文章的趣味性和可读性。这就像要求一个厨师既…...
OpenClaw自动化办公实战:千问3.5-9B处理日报与会议纪要
OpenClaw自动化办公实战:千问3.5-9B处理日报与会议纪要 1. 为什么选择OpenClaw处理办公杂务 去年冬天的一个深夜,我盯着电脑屏幕上一堆未处理的会议录音和零散的邮件摘要,突然意识到自己每周要花至少5小时做这些重复性工作。当时我尝试过各…...
C语言变量与数据类型在嵌入式开发中的核心要点
1. C语言变量与数据类型基础解析作为一名在嵌入式领域摸爬滚打多年的工程师,我深知变量和数据类型是C语言编程的基石。每次带新人时,发现80%的基础错误都源于对这两个概念理解不透彻。C语言作为静态类型语言,要求每个变量都必须明确指定类型&…...
Everything Claude Code 爆火背后:我们正在用“团队”而非“个体”构建 AI 编程助手
最近 24 小时,GitHub 上一个叫 Everything Claude Code 的项目新增了 5707 颗星,总星数突破 13 万。如果你只把它看作“Claude Code 的配置增强包”,那可能错过了更重要的信号——这波热度背后,是一场从“工具竞争”向“工程体系竞…...
《永恒战士2-无双战神》无限金币版(提供apk下载)安卓Android逆向记录学习-Deepseek-AI辅助
《永恒战士2-无双战神》无限金币版(提供apk下载)安卓Android逆向记录学习-Deepseek-AI辅助 不知道会不会有人来技术论坛找一个10几年前的游戏安装包 我是前段时间,突然想起来这个游戏,上网搜,网上都说有 那我就去找&am…...
