Lua中模拟三目运算符

Lua的运算符里面是没有三目运算符的,所以只能通过逻辑运算符and和or来模拟实现三目运算符的功能!

先了解一下Lua的基本数据类型boolean以及逻辑运算符and和or:

boolean

false:nil和false

true:除nil和false之外的都为true,当然0也为true

and

A and B:若 A 为 false,则返回 A,否则返回 B

or

A or B:若 A 为 true,则返回 A,否则返回 B

说明:在Lua中,and和or是通过返回值来表示真假!

三目运算符

A and B or C:A为true,则返回B,否则返回C!

local a, b = 3, 5

print(a > b and "a > b" or "a <= b")
-- a <= b

print(a <= b and "a <= b" or "a > b")
-- a <= b

这里有个前提是必须保证B不能为false才行!

在网上看到有大佬针对这个局限性给出了解决方案:(a and {b} or {c})[1]

参考:https://blog.csdn.net/coffeecato/article/details/77546887

你可能感兴趣的:(#,Lua,Lua使用笔记)