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

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

相关推荐
007张三丰26 分钟前
软件测试专栏(7/20):接口测试全攻略:Postman+Newman实现API自动化
自动化·lua·接口测试·postman·api测试·newman
lxl130739 分钟前
C++算法(11)字符串
开发语言·c++·算法
ht巷子41 分钟前
Asio学习:定时器
c++·计算机网络
陳10301 小时前
C++:哈希表
开发语言·c++·散列表
WBluuue1 小时前
数据结构与算法:01分数规划
c++·算法
七七肆十九1 小时前
PTA 习题9-1 时间换算
c语言·算法
行稳方能走远1 小时前
结构体传参,到底该传值还是传指针?
c++·单片机
sycmancia1 小时前
C++——函数模板的概念和意义
c++
闻缺陷则喜何志丹1 小时前
【巴什博弈 线性筛】P8901 [USACO22DEC] Circular Barn S|普及+
c++·数学·洛谷·巴什博弈·线型筛
样例过了就是过了1 小时前
LeetCode热题100 电话号码的字母组合
数据结构·c++·算法·leetcode·dfs