Lua编程中使用for循环

我有一个由\n分隔的字符串,我正在使用for执行一些操作。但是我不想让for循环到字符串的末尾,只想让循环执行固定次数,就像下面的代码一样但它并不起作用。

for w=1,10 in webdata:gmatch("(.-)\n") do
    --something
end
点赞
用户4567755
用户4567755

Lua中有两种不同的for循环,你把它们混合在一起了。

数值for

for i=1,10 do -- 或者例如i=10,1,-1
   -- 做一些事情
end

通用for:

for k,v in pairs(t) do -- 或ipairs,或完全自定义功能
   -- 做一些事情
end

更多信息请参见:

你的问题

要实现目标,你可以使用另一个迭代器包装gmatch或者使用最直接明了的简单方法:计算你已处理的行数:

local n = 1
for l in webdata:gmatch("(.-)\n") do
   -- 做一些事情
   n = n + 1
   if n > 10 then
      break
   end
end

它不是最优雅的方法,但它能够工作。

2019-10-31 09:02:13