就像在python中我可以使用切片.喜欢以下
b=[1,2,3,4,5]
a=b[0:3]
Run Code Online (Sandbox Code Playgroud)
我可以在没有循环的情况下在Lua中进行这种操作.Or Loop是最有效的方法
Fan*_*ing 15
通过使用table.unpack
(unpack
在Lua 5.2之前)的结果创建一个新表:
for key, value in pairs({table.unpack({1, 2, 3, 4, 5}, 2, 4)}) do
print(key, value)
end
Run Code Online (Sandbox Code Playgroud)
这会产生......
1 2
2 3
3 4
Run Code Online (Sandbox Code Playgroud)
(在Lua 5.3.4和Lua 5.1.5中测试过.)
小智 10
这样做没有语法糖,所以你最好的选择是通过一个函数:
function table.slice(tbl, first, last, step)
local sliced = {}
for i = first or 1, last or #tbl, step or 1 do
sliced[#sliced+1] = tbl[i]
end
return sliced
end
local a = {1, 2, 3, 4}
local b = table.slice(a, 2, 3)
print(a[1], a[2], a[3], a[4])
print(b[1], b[2], b[3], b[4])
Run Code Online (Sandbox Code Playgroud)
请记住,我没有测试过这个功能,但它或多或少都没有检查输入.
编辑:我在ideone上运行它.
归档时间: |
|
查看次数: |
9246 次 |
最近记录: |