gpt4 book ai didi

lua - 在 Lua 中,它是如何处理的?

转载 作者:行者123 更新时间:2023-12-02 04:39:18 24 4
gpt4 key购买 nike

我在 Lua Style Guide 中看到了这段代码

print(x == "yes" and "YES!" or x)

上下文:

local function test(x)
print(x == "yes" and "YES!" or x)
-- rather than if x == "yes" then print("YES!") else print(x) end
end

"x == "yes"和 "YES!"到底发生了什么?为什么它打印“是!”或 (x) 不是“真”或 (x)?

编辑:

是不是这样:

X == "yes"               -- > true
true and (value) -- > value
print( (x == "yes") and value)

所以检查 x 的值“yes”结果为 true,将 true 添加到一个值给出该值并打印此过程打印该值,对吧?

最佳答案

来自docs :

The operator and returns its first argument if it is false; otherwise, it returns its second argument.

因此,true 和“YES!” 的计算结果为 “YES!”

这个方案之所以有效,是因为如果第一个参数是假的,整个表达式都会变成假的(与第一个参数相同);否则它将与第二个参数相同,当且仅当它为真将使整个表达式为真。

关于lua - 在 Lua 中,它是如何处理的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38780025/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com