如何在Lua中弹出/删除键值对表中的下一项(任意)?
在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
这是否可能不必使用
对进行迭代?有一个基本函数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
包含键。