Lua的感叹号是做什么的?

时间:2014-02-13 22:12:39

标签: lua logical-operators negation

问题在标题中,真的。我之前看到有人使用过这个,我不知道!的用途是什么。

local lowestIndex = 0;
local lowestValue = false;
for k, v in ipairs(playerElement) do
    if !lowestValue or v.value < lowestValue then
        lowestIndex = k;
        lowestValue = v;
    end
end

2 个答案:

答案 0 :(得分:6)

正如其他人所说,!通常在Lua中没有任何功能,而您发布的代码通常无效。然而,扩展Lua的解析器以允许自定义语法是非常简单的,并且对于嵌入Lua以添加“更熟悉”的C风格语法(例如!var!=)的项目并非闻所未闻。到not var~=。一个值得注意的项目是Garry's Mod,我确信还有其他项目。

当然,如果可能的话,最好避免在正常语法可用时(或者首先自定义它)使用自定义语法,以避免这种混淆。

答案 1 :(得分:3)

这是语法错误。

某些语言(主要是C及其亲属)使用!作为逻辑“非”运算符,但Lua使用not关键字,而不使用!作为任何内容据我所知(甚至不作为不等式运算符的一部分;它使用~=,其中C使用!=)。

你似乎已经掌握了一些不知道的人编写的Lua代码。