Ich habe eine for-Schleife, in der ich einige Aktion mache, die ich nur maximal n mal machen möchte. Bisher habe ich dies mit Hilfe einer lokalen Variablen gemacht, die ich in der Schleife inkrementiere, und jedes Mal überprüfe, ob es das Zählerlimit überschritten hat. Wenn es so ist, breche ich aus der Schleife.Schleife über die ersten n Elemente von Lua Tabelle
for _,u in GetAllUnits() do
if not u:IsInCategory("STRUCTURE") and not u:IsInCategory("COMMAND") then
NameUnit(u)
nameCount = nameCount + 1
if nameCount >= maxUnitNames then break end
end
end
Ich bin sehr neu zu Lua und frage mich, ob es einen besseren Weg gibt, dies zu tun. Es ist wichtig, dass ich keine Kopie der Tabelle oder eine andere teure Operation erstelle.
Beachten Sie, dass die _
die ID der Einheit enthält, so dass diese nicht anstelle des Zählers verwendet werden kann.
Was beschäftigt Sie mit Ihrer aktuellen Methode? –
Sie können GetAllUnits() auch ändern, um als Parameter die maximale Anzahl der zurückzugebenden Elemente zu akzeptieren. Also, du verschiebst effektiv den 'if .. break' Code in GetAllUnits() – tonypdmtr
@tonypdmtr Äh, bedeutet "All" nicht etwas anderes? –