首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ComputerCraft中的Lua集函数

ComputerCraft中的Lua集函数
EN

Stack Overflow用户
提问于 2015-07-29 16:51:43
回答 1查看 230关注 0票数 0

我有一个ComputerCraft程序设置为打开警笛,当任何非白名单球员接近:

代码语言:javascript
复制
sensor = peripheral.wrap("top")
function arraysubset(a, b)
   local s = set(b)
   for _, el in pairs(a)
      if not s[el] then
         return false
      end
   end
   return true
end
function sirenOn() rs.setBundledOutput("back",colors.blue) end
function sirenOff() rs.setBundledOutput("back",0) end
while 1 do
  playersNear = sensor.getPlayerNames()
  allowedPlayers = {"VirtualDXS","jettrom","Shad0wlurker16","Demonicmobster","FireFang0113","riggs135","DaisySnow123","MasterAlex930"}
  if playersNear[1] ~= nil then
    if arraysubset(playersNear,allowedPlayers) then sirenOff() else sirenOn() end
  else sirenOff() end
end

但是,在第3行,我尝试调用“零”。这使我认为set()函数在computercraft上不存在。我想知道:

  1. 是否有另一种(也许更好的)方法可以找到数组a是否是数组b
  2. 如果不是,哪里可以获得带有set()函数的API?
EN

回答 1

Stack Overflow用户

发布于 2015-07-29 17:02:26

在重新读取子集()代码的源代码时,我看到我使用的代码需要更多的答案前面的代码:

代码语言:javascript
复制
function set(list)
   local t = {}
   for _, item in pairs(list) do
       t[item] = true
   end
   return t
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31706559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档