私は最大限n回だけ実行したいといういくつかの処理をしているforループを持っています。今まで私はループ内で増分するローカル変数を使ってこれを行い、毎回カウンタの制限を超えているかどうかを確認しました。もしそうなら、私はループから脱出する。ルーアテーブルの最初のn個の要素をループします
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
私は非常に新しいLuaで、これを行うより良い方法があるのだろうかと思っています。テーブルのコピーやその他の高価な操作を作成することはできません。
_
にはユニットのIDが含まれているため、カウンタの代わりに使用することはできません。
現在の方法で懸念していることは何ですか? –
GetAllUnits()を変更して、返す項目の最大数をパラメータとして受け入れることもできます。だから、GetAllUnits()内の 'if .. break'コードを効果的に移動する – tonypdmtr
@tonypdmtr「すべて」という言い方が違うのですか? –