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
如何在Lua中弹出/删除键值对表中的下一项(任意)?_Lua_Lua Table - Fatal编程技术网

如何在Lua中弹出/删除键值对表中的下一项(任意)?

如何在Lua中弹出/删除键值对表中的下一项(任意)?,lua,lua-table,Lua,Lua Table,在Lua中,如何弹出/删除键值对表中的下一项(任意顺序) 这是否可能不必使用对进行迭代?有一个基本函数next,您可以调用next(t,k),其中k是表t的键,以任意顺序返回表中的下一个键以及与该键相关的值 如果k为nil,next(t,k)返回第一个元素(如果有)。因此,您可以通过调用next(t,nil)迭代表,并在下一个键为nil时结束 这是一个简单的示例,演示如何使用next: local t = {a = "va", b = "vb", c = "vc"} local k,v = n

在Lua中,如何弹出/删除键值对表中的下一项(任意顺序)


这是否可能不必使用
对进行迭代?

有一个基本函数
next
,您可以调用
next(t,k)
,其中
k
是表
t
的键,以任意顺序返回表中的下一个键以及与该键相关的值

如果
k
nil
next(t,k)
返回第一个元素(如果有)。因此,您可以通过调用
next(t,nil)
迭代表,并在下一个键为
nil
时结束

这是一个简单的示例,演示如何使用
next

local t = {a = "va", b = "vb", c = "vc"}

local k,v = next(t,nil)
print(k,v)
k,v = next(t,k)
print(k,v)
k,v = next(t,k)
print(k,v)
k,v = next(t,k)
print(k,v)
输出:

a       va
c       vc
b       vb
nil     nil

有一个基本函数
next
,您可以调用
next(t,k)
,其中
k
是表
t
的键,以任意顺序返回表中的下一个键,以及与该键关联的值

如果
k
nil
next(t,k)
返回第一个元素(如果有)。因此,您可以通过调用
next(t,nil)
迭代表,并在下一个键为
nil
时结束

这是一个简单的示例,演示如何使用
next

local t = {a = "va", b = "vb", c = "vc"}

local k,v = next(t,nil)
print(k,v)
k,v = next(t,k)
print(k,v)
k,v = next(t,k)
print(k,v)
k,v = next(t,k)
print(k,v)
输出:

a       va
c       vc
b       vb
nil     nil
全局函数在这里很有用。医生们一般都解释得很好。要反复使用它,这是“键”:

你可以。。。修改现有字段。特别是,您可以清除 现有字段

一个简单的pop函数:

 -- removes and returns an arbitrary key-value pair from a table, otherwise nil
 local pop = function (t)
    local key, value = next(t)
    if key ~= nil then
        t[key] = nil
    end
    return key, value
end
演示:

如果多次运行演示,您可能会看到表序列的任意性。

全局函数在这里很有用。医生们一般都解释得很好。要反复使用它,这是“键”:

你可以。。。修改现有字段。特别是,您可以清除 现有字段

一个简单的pop函数:

 -- removes and returns an arbitrary key-value pair from a table, otherwise nil
 local pop = function (t)
    local key, value = next(t)
    if key ~= nil then
        t[key] = nil
    end
    return key, value
end
演示:


如果您多次运行演示,您可能会看到表序列的任意性。

键的索引是基于索引的还是基于关联的?我认为是关联的,即“this”=23,“that”=234等等。下一项是什么?你能举个例子说明你想做什么吗?无论如何,要删除一个表项,只需执行
t[k]=nil
,其中
t
包含表,
k
包含键。键的索引是基于索引的还是基于关联的?我认为是关联的,即“this”=23,“that”=234等等下一项是什么?你能举个例子说明你想做什么吗?无论如何,要删除一个表条目,只需执行
t[k]=nil
,其中
t
包含表,而
k
包含键。