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

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

相关推荐
郝学胜_神的一滴18 小时前
CMake 034:生成器表达式:解耦构建时序、精简分支逻辑的终极利器
c++·cmake
见过夏天1 天前
C++ 基础入门完全指南
c++
用户805533698033 天前
不止三件套:QObject 属性系统全关键字与运行时反射!
c++·qt
BadBadBad__AK3 天前
线段树维护区间 k 次方和
c++·数学·算法·stl
卷无止境4 天前
Eigen 库如何借助 OpenMP 加速计算
c++·后端
卷无止境4 天前
OpenMPI、MPICH 与 OpenMP:关系、核心概念与架构全解
c++·后端
郝学胜_神的一滴5 天前
CMake 30:循环语法全解|foreach_while双循环精讲、迭代技巧与实战避坑指南
c++·cmake
卷无止境7 天前
C++ 的Eigen 库全解析
c++
卷无止境7 天前
现代 C++特性大盘点:一门脱胎换骨的老语言
c++·后端
郝学胜_神的一滴7 天前
CMake 27:缓存变量的特性、语法、类型与实操全解
c++·cmake