检查表[Lua]中是否有名称

时间:2018-08-23 23:04:22

标签: lua

我正在开发一个脚本,该脚本应该检测“用户”的名称是否被禁止。那是如果他在被禁止的名单上。我可以在列表(存储禁止用户列表的表)中添加一个“名称”,但是我无法开发用于检查给定名称是否在禁止列表中,是否应该返回打印内容的功能

我的脚本分割了:

function split(str, sep)
  local arg = {}
  for i, v in string.gmatch(str, string.format("[^%s]+", sep or "%s")) do
    table.insert(arg, i)
  end
  return arg
end

1 个答案:

答案 0 :(得分:1)

您有一个名称集合,并且想知道该集合中是否包含名称。

最简单的组织方式是 dictionary ,其中的密钥是被禁止的用户:

local BANNED = {
    ["alpha"] = true,
    ["gamma"] = true,
}

当表中有键时,您可以获取相关值:

print(BANNED["alpha"]) --> true

当键不在表中时,您将从表中获得nil

print(BANNED["beta"]) -- nil

如果名称集合最初是作为名称的列表组织的(例如,从split函数的输出中),则可以使用for循环遍历该列表,将每个名称添加到BANNED字典中:

local BANNED = {}
for _, name in ipairs(names) do
    BANNED[name] = true
end
相关问题