检查名称是否在表中[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
点赞
用户2616735
用户2616735

你有一个名字集合,想要知道一个名字是否在这个集合中。

最简单的方式是使用 字典,其中键是被禁止的用户:

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
2018-08-24 00:35:05