gpt4 book ai didi

lua - 根据选择插槽在 Lua 表中移动对象的最有效方法是什么?

转载 作者:行者123 更新时间:2023-12-04 18:24:32 25 4
gpt4 key购买 nike

我有一个对象表,用户可以按照表中的任何给定顺序在表中选择一个对象并将其放置在表中的另一个槽中。当发生这种情况时,我需要将表从选定的丢弃槽移开并填充空槽。不是交换,这很简单,而是放置点的转变。

所以如果我把这个作为我的表的高度简化的例子

t = {a, b, c, d, e, f}

然后用户选择,说e,并希望将其放入插槽b。我会怎么做最好

  1. e 占据 b 位置
  2. 将所有从"bd的值右移然后也填充空的 e 插槽?
  3. 无论选择什么和在哪里,我将如何处理这种转变无论 table 有多大,它都能有效地在 table 上移动可能是?

最佳答案

这里是一个使用 table.move 的 shift 实现如@lhf 所述,它在 Lua 5.3 中是高效且可用的:

function shift(t, old, new)
local value = t[old]
if new < old then
table.move(t, new, old - 1, new + 1)
else
table.move(t, old + 1, new, old)
end
t[new] = value
end

关于lua - 根据选择插槽在 Lua 表中移动对象的最有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32227909/

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