数组 – Lua:在数组中“拖动”元素序列
发布时间:2020-12-14 21:44:29 所属栏目:大数据 来源:网络整理
导读:我正在尝试创建一个函数,将一系列连续元素“拖动”到数组中的新位置,约束到数组的当前大小.其他项目应围绕“拖动”项目摇摆. 例如,如果我的数组有7个元素,我想拖动中间三个… 1,2,3,4,5,6,7 -- keysa,b,C,D,E,f,g -- values 大写字母是我想要“拖动”的字符.
我正在尝试创建一个函数,将一系列连续元素“拖动”到数组中的新位置,约束到数组的当前大小.其他项目应围绕“拖动”项目摇摆.
例如,如果我的数组有7个元素,我想拖动中间三个… 1,2,3,4,5,6,7 <-- keys a,b,C,D,E,f,g <-- values 大写字母是我想要“拖动”的字符.如果我拖动到数组的开头(拖动到1),数组将如下所示: 1,7 <-- keys C,a,g <-- values 如果我拖动到位置5(或上面 – 不能拖动到当前数组大小之外),g,E <-- values 知道如何使用Lua以非狡猾的方式实现这一目标吗? 解决方法
这是在Lua 5.3中使用
table.move 的版本.
它将要拖动的组复制到另一个表中,并向上或向下移动值以为该组腾出空间. function drag(t,src,len,dest) local copy = table.move(t,src + len - 1,1,{}) if src >= dest then table.move(t,dest,src - 1,dest + len) else table.move(t,src + len,dest + len - 1,src) end table.move(copy,t) end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |