在Lua编程中使用循环

问题描述 投票:0回答:1

我有一个由\n分隔的字符串,并且我正在使用for对此进行处理。但是我不希望for循环到字符串的末尾,只希望for循环到下面的这段代码,但它不起作用。

for w=1,10 in webdata:gmatch("(.-)\n") do 
    --something
end
lua
1个回答
0
投票

Lua中有两个不同的for循环。您正在将它们混合在一起。

数值for

for i=1,10 do -- or e.g. i=10,1,-1
   -- do something
end

通用for

for k,v in pairs(t) do -- or ipairs, or completely custom functions
   -- do something
end

有关更多信息,请参阅:

您的问题

为了实现您的目标,您可以用另一个迭代器包装gmatch,或者...采用最简单直接的解决方案:计算已处理的行数:

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

这不是最优雅的,但是有效。

© www.soinside.com 2019 - 2024. All rights reserved.