如何检查表中的值是否等于_G变量字符串?

如何检查表格以查看表格中的值是否与_G.User = ""变量匹配?

_G.Name = "Bod"
------------------------------------------------------------
local CorrectUsers = {
  "Username1",
  "Username2",
  "Username3",
  "Username4",
  "Username5",
}
------------------------------------------------------------
for i,v in pairs(CorrectUsers, _G.User) do
 if table.find(CorrectUsers, _G.User) then
  print("正确的用户")
 else
  print("错误的用户")
 end
end

https://replit.com/@BloodThirstyy/SimpleMultiStepWhitelist

原文链接 https://stackoverflow.com/questions/71023065

点赞
stackoverflow用户2858170
stackoverflow用户2858170
对于表格 `pairs` 只需要一个参数,Lua 的表库中并没有 `table.find`。

在你的代码中 `_G.User` 没有定义,而 `_G.Name` 也没有被使用。

通常来说,没有必要通过 `_G` 访问全局变量,可以直接写 `User`。

要在表格中找到某个值,可以遍历表格并将每个元素与需要查找的值进行比较。

所以对于如下表格:

local CorrectUsers = { "Bob", "John", "Susan", "Daniel", "Zoe", }


仅需要这样:

for i, v in ipairs(CorrectUsers) do if v == "Daniel" then print("找到了 Daniel") end end


另外,你也可以建立一个查找表:

local isCorrectUser = { Bob = true, Jane = true, John = true, }


然后这样写:

if isCorrectUser.Jane then print("找到了 Jane") end


由于建立查找表可能会变得很麻烦,你可以直接从你的用户列表中创建一个查找表:

local isCorrectUser = {} for i, v in ipairs(CorrectUsers) do isCorrectUser[v] = true end

```

当你频繁查找值时,使用查找表会非常有用,因为你不需要每次遍历整个表格。

2022-02-07 21:02:49