这段代码的理解是否正确?

假设我有一个名为 myFileName.lua 的文件,其中包含以下代码。

function Set(source)
  set = {}
  if source then
    for i,v in ipairs(source) do
      set[v] = true
    end
  end
  return set
end

return Set

我的理解如下:source 是一个 table,if source then 的意思是,如果表 source 不为空,则执行某些操作。第一个 return set 意味着将表 set 作为函数 Set 的返回值返回。第二个 return Set 意味着将 Set 函数作为文件 myFileName.lua 的返回值返回。

然后,在 main.lua 文件中,我使用 Set = require('lib/myFileName')

这意味着在文件 myFile.lua 中返回并赋值了名为 Set 的 Set 函数,以便我可以在文件 main.lua 中使用它。这个理解正确吗?如果有任何评论,将不胜感激。

点赞
用户1381216
用户1381216

在这个文件中,Set是一个函数。set是一个表格。if source then这一行将确保source不为nil或者false。所以即使source为空的{},它也会进入。

其余的都是正确的,从主文件引用这个文件将使你可以访问Set函数。

想获得更多信息,可以在这里阅读 Lua 逻辑表达式的更多信息

2019-11-09 04:19:54