gpt4 book ai didi

function - 了解 lua 函数如何工作?

转载 作者:行者123 更新时间:2023-12-02 23:25:19 24 4
gpt4 key购买 nike

我有一个使用多个 lua 脚本的 HTML 项目,我在理解一个函数的功能时遇到了很大的问题(我是 lua 新手):

........................

所有要求都已完成,路径也已定义

local fs = require "lfs"

local const = {}
for num = 1, 14 do
const[num] = assert(
dofile (const_path .. mkfilename(num)),
"Failed to load constant configuration ".. num ..".")
end




local function file_number() --this is the function that causes me a headach
local ci, co, num = ipairs(const)-- when I print num is 0 and ci,co are nil
local vi, vo, _ = fs.dir(virt_path)-- what does _ mean here ?
local function vix(o)
local file = vi(o)
if file == nil then return nil end
local number = file:match("^(%d+).lua$")
if number == nil then return vix(o) end
return tonumber(number)
end
local function iter(o, num)
return ci(o.co, num) or vix(o.vo, num)---where is ci defined or impplemented
end
return iter, {co=co, vo=vo}, num-- what 's the return value here ?
end

该函数可以工作,但我仍然不明白为什么以及如何工作,我将不胜感激任何提示。

最佳答案

_ 通常是一次性变量。

在这种情况下,它没有任何作用,并且可以很容易地完全排除。

ci 应该是一个函数,co 应该是一个表。

vivo 也是如此(尽管我不能确定 vo)。

该函数正在使用迭代器函数构造自己的迭代器,并从 ipairsfs.dir 函数返回状态。

return iter, {co=co, vo=vo}, num 返回一个迭代器函数、一个状态表和初始循环变量 (0 来自初始 ipairs 调用)。

当在循环中使用时,将循环遍历 civix 的值。

关于function - 了解 lua 函数如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27508857/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com