Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function 函数返回nil,但应该返回true或false 函数表。includeIndex(t,索引) 对于k,v成对(t)do 如果k==索引,则 返回真值 结束 结束 返回错误 结束 函数表。在(t,索引)处删除 如果表.includeIndex(t,索引),则 表.删除(t,索引) 结束 结束 函数表.删除(t,值) 如果表中包含(t,值),则 表.删除(t,表.索引(t,值)) 返回值 结束 结束 功能表.索引(t,项) 对于k,v成对(t)do 如果类型(t[k])==‘表’,则 如果表.相等(t[k],项目),则 返回k 结束 其他的 如果t[k]==项目,则 返回k 结束 结束 结束 返回“无” 结束 函数表dup(t) 局部w={} 对于k,v成对(t)do w[k]=v 结束 返回w 结束 函数表。包括(t,值) 对于k,v成对(t)do 如果t[k]==值,则 返回真值 结束 结束 返回错误 结束 功能选项卡(选项卡) 返回setmetatable(tab,{uuuu index=table}) 结束 函数表。空(t) 对于k,v成对(t)do 如果v~=nil,那么 返回错误 结束 结束 返回真值 结束 功能表。拒绝(原件、项目) 本地t=表.dup(原始) 对于k,v成对(项目)do 表.删除(t,v) 结束 返回t 结束 --------------------------------------------------- 函数表.testrejectedArray(t,rejected,index) 选项卡(已拒绝) 如果index==nil,则 索引=1 结束 如果被拒绝:empty(),那么——就是我说的那一行。 打印('yey') 返回真值 其他的 如果被拒绝:包括(t[索引]),然后 t:testrejectedArray(拒绝:拒绝({t[index]}),索引+1) 其他的 如果索引_Function_Lua_Return - Fatal编程技术网

Function 函数返回nil,但应该返回true或false 函数表。includeIndex(t,索引) 对于k,v成对(t)do 如果k==索引,则 返回真值 结束 结束 返回错误 结束 函数表。在(t,索引)处删除 如果表.includeIndex(t,索引),则 表.删除(t,索引) 结束 结束 函数表.删除(t,值) 如果表中包含(t,值),则 表.删除(t,表.索引(t,值)) 返回值 结束 结束 功能表.索引(t,项) 对于k,v成对(t)do 如果类型(t[k])==‘表’,则 如果表.相等(t[k],项目),则 返回k 结束 其他的 如果t[k]==项目,则 返回k 结束 结束 结束 返回“无” 结束 函数表dup(t) 局部w={} 对于k,v成对(t)do w[k]=v 结束 返回w 结束 函数表。包括(t,值) 对于k,v成对(t)do 如果t[k]==值,则 返回真值 结束 结束 返回错误 结束 功能选项卡(选项卡) 返回setmetatable(tab,{uuuu index=table}) 结束 函数表。空(t) 对于k,v成对(t)do 如果v~=nil,那么 返回错误 结束 结束 返回真值 结束 功能表。拒绝(原件、项目) 本地t=表.dup(原始) 对于k,v成对(项目)do 表.删除(t,v) 结束 返回t 结束 --------------------------------------------------- 函数表.testrejectedArray(t,rejected,index) 选项卡(已拒绝) 如果index==nil,则 索引=1 结束 如果被拒绝:empty(),那么——就是我说的那一行。 打印('yey') 返回真值 其他的 如果被拒绝:包括(t[索引]),然后 t:testrejectedArray(拒绝:拒绝({t[index]}),索引+1) 其他的 如果索引

Function 函数返回nil,但应该返回true或false 函数表。includeIndex(t,索引) 对于k,v成对(t)do 如果k==索引,则 返回真值 结束 结束 返回错误 结束 函数表。在(t,索引)处删除 如果表.includeIndex(t,索引),则 表.删除(t,索引) 结束 结束 函数表.删除(t,值) 如果表中包含(t,值),则 表.删除(t,表.索引(t,值)) 返回值 结束 结束 功能表.索引(t,项) 对于k,v成对(t)do 如果类型(t[k])==‘表’,则 如果表.相等(t[k],项目),则 返回k 结束 其他的 如果t[k]==项目,则 返回k 结束 结束 结束 返回“无” 结束 函数表dup(t) 局部w={} 对于k,v成对(t)do w[k]=v 结束 返回w 结束 函数表。包括(t,值) 对于k,v成对(t)do 如果t[k]==值,则 返回真值 结束 结束 返回错误 结束 功能选项卡(选项卡) 返回setmetatable(tab,{uuuu index=table}) 结束 函数表。空(t) 对于k,v成对(t)do 如果v~=nil,那么 返回错误 结束 结束 返回真值 结束 功能表。拒绝(原件、项目) 本地t=表.dup(原始) 对于k,v成对(项目)do 表.删除(t,v) 结束 返回t 结束 --------------------------------------------------- 函数表.testrejectedArray(t,rejected,index) 选项卡(已拒绝) 如果index==nil,则 索引=1 结束 如果被拒绝:empty(),那么——就是我说的那一行。 打印('yey') 返回真值 其他的 如果被拒绝:包括(t[索引]),然后 t:testrejectedArray(拒绝:拒绝({t[index]}),索引+1) 其他的 如果索引,function,lua,return,Function,Lua,Return,“--”之前的所有内容只有在您想运行它时才需要。我应该那样发帖吗 函数“testrejectedArray”返回nil,但应该返回true/false值 当我运行代码时,它会打印“yey”, 所以,若块正在运行,但若“returntrue”是下一行,那个么怎么可能不返回某些内容呢 关键是,如果我们将“rejected:empty()”替换为“true”,那么 函数“testrejectedArray”将返回true 那么函数返回false? 但如果我们将“已拒绝:empty()”替换为“fals

“--”之前的所有内容只有在您想运行它时才需要。我应该那样发帖吗

函数“testrejectedArray”返回nil,但应该返回true/false值

当我运行代码时,它会打印“yey”, 所以,若块正在运行,但若“returntrue”是下一行,那个么怎么可能不返回某些内容呢

关键是,如果我们将“rejected:empty()”替换为“true”,那么 函数“testrejectedArray”将返回true 那么函数返回false? 但如果我们将“已拒绝:empty()”替换为“false” 是的,不要打印“yey”


因此,“rejected:empty()”返回true,但出于某种原因,它不会返回任何内容。

由于您递归调用
testrejectedArray
,因此需要在每次调用之前添加
return

function table.includeIndex(t,index)
    for k,v in pairs(t) do
        if k == index then
            return true
        end
    end
    return false
end
function table.delete_at(t,index)
    if table.includeIndex(t,index) then
        table.remove(t,index)
    end
end
function table.delete(t,value)
    if table.include(t,value) then
        table.delete_at(t,table.index(t,value))
        return value
    end
end
function table.index(t,item)
    for k,v in pairs(t) do
        if type(t[k]) == 'table' then
            if table.equal(t[k],item) then
                return k
            end
        else
            if t[k] == item then
                return k
            end
        end
    end
    return "none"
end
function table.dup(t)
    local w = {}
    for k,v in pairs(t) do
        w[k] = v
    end
    return w
end
function table.include(t,value)
    for k,v in pairs(t) do
        if t[k] == value then
            return true
        end
    end
        return false
end
function tab(tab)
    return setmetatable(tab,{__index=table})
end
function table.empty(t)
    for k,v in pairs(t) do
        if v ~= nil then
            return false
        end
    end
    return true
end
function table.reject(original,items)
    local t = table.dup(original)
    for k,v in pairs(items) do
        table.delete(t,v)
    end
    return t 
end
---------------------------------------------------
function table.testrejectedArray(t,rejected,index)
    tab(rejected)
    if index == nil then
        index = 1   
    end
    if rejected:empty() then -- The line I'm talking about.
        print('yey')
        return true
    else
        if rejected:include(t[index]) then
            t:testrejectedArray(rejected:reject({t[index]}),index + 1)
        else
            if index < #t + 1 then
                t:testrejectedArray(rejected,index + 1)
            else
                print('haha')
                return false
            end
        end
    end
end
a = tab{1,2,3}
seq = tab{3,1,2}
w = seq:testrejectedArray(a)
print(w)
如果被拒绝:包括(t[index]),然后
returnt:testrejectedArray(rejected:rejected({t[index]}),index+1)--这不是问题,但您的代码太复杂了。例如,
table.includeIndex
可以简单地写成
returnt[k]~=nil
table.empty
as
return next(t)~=nil
。在这两种情况下都不需要
pairs
循环。“--”之前的所有代码都是为了使其仅可运行。因此,不管代码有多混乱,但是您的建议有助于改进代码,谢谢。
    if rejected:include(t[index]) then
        return t:testrejectedArray(rejected:reject({t[index]}),index + 1) --<--
    else
        if index < #t + 1 then
            return t:testrejectedArray(rejected,index + 1) --<--
        else
            print('haha')
            return false
        end
    end