2

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

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
4

2 回答 2

8

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

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

于 2014-02-14T00:00:21.930 回答
3

这是一个语法错误。

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

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

于 2014-02-13T23:22:54.267 回答