Lua 数据类型 - boolean

一、boolean 定义

lua 中只有 false 和 nil 表示假,其他都是表示真。

数字 0 和空字符串也表示真。

二、逻辑运算:and、or、not

and:如果第一个操作数为 "false" , 则返回第一个操作数 or:如果第一个操作数不为 "false" ,则返回第一个操作数,否则返回第二个操作数 not:永远只返回 boolean 类型值

lua 复制代码
print(4 and 5)          --> 5
print(nil and 13)       --> nil
print(false and 13)     --> false
print(0 or 5)           --> 0
print(false or "hi")    --> hi
print(nil or false)     --> false

三、巧妙用法

第一种:x = x or v 的作用就是如果 x 未被初始化,则将 v 赋值给 x ,等效如下代码。这里需要知道 x 不是 Boolean 类型的 false

lua 复制代码
if not x then x = v then 

第二种:((a and b) or c) 或 (a and b or c),等效于三木运算符 a ? b : c这里需要知道 b 不为 Boolean 类型 false

可以用以下表达式进行求两个值的最大值

lua 复制代码
(x > y) and x or y

四、写在最后

Lua 项目地址:Github传送门 (如果对你有所帮助或喜欢的话,赏个star吧,码字不易,请多多支持)

公众号搜索 "江澎涌" 可以更快的获取到后续的更新文章

相关推荐
会开花的二叉树25 分钟前
继承与组合:C++面向对象的核心
java·开发语言·c++
潮汐退涨月冷风霜1 小时前
数字图像处理(1)OpenCV C++ & Opencv Python显示图像和视频
c++·python·opencv
第七序章2 小时前
【C++STL】list的详细用法和底层实现
c语言·c++·自然语言处理·list
逆小舟4 小时前
【Linux】人事档案——用户及组管理
linux·c++
l1t4 小时前
利用DeepSeek实现服务器客户端模式的DuckDB原型
服务器·c语言·数据库·人工智能·postgresql·协议·duckdb
l1t6 小时前
利用美团龙猫用libxml2编写XML转CSV文件C程序
xml·c语言·libxml2·解析器
风中的微尘9 小时前
39.网络流入门
开发语言·网络·c++·算法
混分巨兽龙某某10 小时前
基于Qt Creator的Serial Port串口调试助手项目(代码开源)
c++·qt creator·串口助手·serial port
小冯记录编程10 小时前
C++指针陷阱:高效背后的致命危险
开发语言·c++·visual studio
C_Liu_10 小时前
C++:类和对象(下)
开发语言·c++