lua - Lua获取表的前N个元素
问题描述
有没有一种方法可以获取表的前 N 个元素?更一般地说,给我从位置 P 开始的前 N 个元素。
还是我必须编写一个函数并使用它pairs
来做到这一点?
解决方案
如评论表中所述,默认情况下没有订单。它只是一堆键值对。所以你的请求只对序列有意义。以下是每个建议解决方案的一些细节和示例。
local myTable = {"a", "b", "c", "d", "e", "f", "g", "h"}
local p = 3
local n = 4
选项 1:https ://www.lua.org/manual/5.3/manual.html#pdf-table.unpack
table.unpack(list [, i [, j]])
返回给定列表中的元素。这个函数相当于
return list[i], list[i+1], ···, list[j]
默认情况下,
i
是1
和j
是#list
。
print(table.unpack(myTable, p, p+n-1))
定义
选项 2:https ://www.lua.org/manual/5.3/manual.html#pdf-table.move
table.move (a1, f, e, t [,a2])
将元素从 table 移动
a1
到 tablea2
,执行与以下多重赋值等效的操作:a2[t],··· = a1[f],···,a1[e]
. 的默认a2
值为a1
。目标范围可以与源范围重叠。要移动的元素数量必须适合 Lua 整数。返回目标表
a2
。
local slice = table.move(myTable, p, p+n-1, 1, {})
推荐阅读
- javascript - 使用 AJAX 发送 JS 对象不更新 PHP 脚本
- r - 错误:参数暗示不同的行数:5、1、2、0
- c# - 带有 Twilio .netcore Blazor 服务器端的短信通知
- r - 代码块以交互方式在 R markdown 文件中工作,但当我使用 bookdown “构建书籍”时则不行
- google-apps-script - 在谷歌表格中是否有任何方法可以使用 importrange 但保持格式?(无付费插件)
- javascript - javascript停止按钮onClick提交表单
- r - 从 R 中的结果列表计算统计数据
- python - 在 pandas df 中查找行并执行相对于该行位置的差异
- haskell - MaybeT 的 runMaybeT 的论点
- flutter-dependencies - 颤振独立性