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吧,码字不易,请多多支持)

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

相关推荐
xx~t15 分钟前
嵌入式——Linux软件编程2
linux·运维·服务器·c语言·学习方法
脑子不好的小菜鸟36 分钟前
秋招、实习 小知识点复习 (C/C++/Linux)—— 碎片时间可看
c++·求职招聘
charlie1145141912 小时前
深探std::vector:三指针、扩容与迭代器失效
开发语言·c++·开源项目
laplaya2 小时前
ROS常用消息之PointCloud2
c++
沙盘客3 小时前
典型应用与趋势:作战实验、AI 决策与数字孪生
c++·人工智能·经验分享
ShineWinsu3 小时前
对于 C++ :从 const、constexpr、auto、decltype 到 type_traits、SFINAE 与 Concepts的解析
c++
luj_17684 小时前
变频技术核心原理揭秘
服务器·c语言·开发语言·经验分享·算法
_Narcissus_4 小时前
B树概念及操作笔记(含完整代码实现)
c语言·数据结构·数据库·c++·笔记·b树·算法
松小白song4 小时前
嵌入式通信协议全解:UART、RS232、RS485、I²C、SPI 与 CAN 的本质区别与选型指南
c语言·开发语言
筠筠喵呜喵4 小时前
解决问题:QNX平台调用glReadPixels卡滞
c++·unix