视频中的代码。
---
--- Generated by EmmyLua(https://github.com/EmmyLua)
--- DateTime: 2019/10/2 22:18
---
local KEYS = { "list" }
local ARGV = { "N", 4, -1 }
local list = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
function slice(list_key, argv_list)
-- 判断是否需要反转
local reverse_flag = #argv_list >= 3 and type(ARGV[3]) == "number" and ARGV[3] < 0
local start = 1
if type(ARGV[1]) == "number" then
start = ARGV[1]
end
local end_ = #list
if type(ARGV[2]) == "number" then
end_ = ARGV[2]
end
local step = 1
if #argv_list >= 3 and type(ARGV[3]) == "number" then
step = ARGV[3]
end
--存储分片结果
local result = {}
--添加分片结果时使用的索引
local result_index = 1
print("start: " .. start .. " end_: " .. end_ .. " step:" .. step)
local for_start = start
local for_end = end_
if reverse_flag then
for_start = #list
for_end = for_end + 1
else
for_end = for_end - 1
end
print("for_start: " .. for_start .. " for_end: " .. for_end .. " step:" .. step)
for var = for_start, for_end, step do
result[result_index] = list[var]
result_index = result_index + 1
end
return result
end
local result_list = slice(KEYS, ARGV)
for i, v in pairs(result_list) do
print(i .. "-->" .. v)
end
lua中循环写法:
start=7
end_=8
step=1
for var =start,end_,step do
print(var)
end