当前位置: 首页 > news >正文

Lua中逻辑运算符and,or,not 区别与用法

在Lua中,逻辑运算符包括 andornot。它们用于对布尔值进行逻辑运算。

and运算符:

当同时满足两个表达式时,返回第二个表达式的值;否则,返回第一个表达式的值。如果第一个表 达式的值为falsenil,则直接返回该值;否则,返回第二个表达式的值。代码示例:

local a = true
local b = false
local c = nil
local d =trueprint(a and d)  -- 输出 true
print(a and b)  -- 输出 false
print(b and a)  -- 输出 false
print(a and c)  -- 输出 nil
print(c and a)  -- 输出 nil

and 简单记忆法: a 为 true 返回 b ,a 为 false ,返回 a

特殊说明 \color{red}{特殊说明} 特殊说明 :逻辑运算符将 false 和 nil 视为假,其他均视为真,0也视为真。

nil 在 lua 中表示一个无效值或 空值。在表达式中则表示 false。 假如一个变量没有赋值前,那么他的值则为 nil。

or运算符:

当至少有一个表达式满足条件时,返回第一个满足条件的表达式的值;否则,返回最后一个表达式的值。如果第一个表达式的值为 truenil,则直接返回该值;否则,返回第二个表达式的值。 代码示例:

local a = true
local b = false
local c = nil
print(a or b)  -- 输出 true
print(b or a)  -- 输出 true
print(a or c)  -- 输出 true
print(c or a)  -- 输出 true

or简单记忆法: a 为 true 返回 a ,a 为 false ,返回 b

not运算符:

用于对一个表达式进行取反操作,如果表达式的值为 falsenil,则返回 true ;否则,返回 false。代码示例:

local a = true
local b = false
local c = nil
print(not a)  -- 输出 false
print(not b)  -- 输出 true
print(not c)  -- 输出 true

and 与 or 优先级

当一行代码同时出现and与or的时候,先进行and操作。


print(true or false and false) 	-- 输出true

and和or 简化判断逻辑

需要注意的是,andor 运算符在进行逻辑运算时是短路的,即如果第一个表达式的值已经能够确定整个表达式的结果,就不再计算第二个表达式。这可以用来简化判断逻辑。 例如:

local a = 10
local b = nil
local c = 20
local result = a and b   -- 如果a为false或nil,则直接返回a的值,否则返回b的值
print(result)  -- 输出 nil
local result = a or c    -- 如果a为true或nil,则直接返回a的值,否则返回c的值
print(result)  -- 输出 10
http://www.lryc.cn/news/133803.html

相关文章:

  • 使用 spaCy 增强 NLP 管道
  • 【HCIP】08.ISIS中间系统
  • Android 13 Framework 添加自定义的系统服务CustomService
  • 前端食堂技术周刊第 95 期:Fresh 1.4、Rollup 迁移至 SWC计划、RSC Devtools、使用开源库的边界、AI 帮你讲论文
  • 【TypeScript】枚举类型
  • 快速通过华为HCIP认证
  • 派森 #P124. 公式计算
  • opencv进阶14-Harris角点检测-cv2.cornerHarris
  • JVM中对象和GC Root之间的四种引用关系
  • 【李宏毅机器学习】注意力机制
  • Nginx使用keepalived配置VIP
  • C语言编写图形界面
  • K8s学习笔记3
  • ceph集群的扩容缩容
  • gremlin安装使用 详细步骤
  • Java语言怎么编写一个程序计算出租车的运输费用:出租车起步15公里以内20块钱,需要支付调头费用
  • 十、flume的安装
  • 互联网广告及产品变现认知分析整理
  • item_search_img-按图搜索淘宝商品(拍立淘)
  • OWASP Top 10(2021)漏洞学习(最新)
  • mysql 、sql server 游标 cursor
  • dockers搭建基本服务
  • 微信小程序纯前端从阿里云OSS下载json数据-完整版
  • 【微服务实战】01-工程结构概览
  • 论文导读|European Journal of Operational Research近期文章精选:旅行商问题专题
  • playwright迭代元素
  • 65 | 增长模型案例
  • Django视图-HttpRequest请求对象和HttpResponse响应对象
  • 原来Lambda表达式是这样写的
  • smartsofthelp 5.0 最专业的数据库优化工具,数据库配置优化,数据库高并发优化,SQL 语句优化...