如果条件成立再次启动函数[LUA]

我有一个简单的函数用于将数组填充为随机数

local function fillArray()
    local rand = math.random( 1,8 )
    if has_value(weaponOrder, rand) then
        -- 我想在这里重新启动函数
        return false
    end
    return rand
end
for i = 1,8 do
    order[i] = fillArray()
end

我希望如果条件成立(has_value是检查数字是否存在的另一个函数),则重新启动函数并返回另一个结果。

点赞
用户1190388
用户1190388

使用repeat-until语句。

local function fillArray()
  local rand
  repeat
    rand = math.random( 1,8 )
  until not has_value(weaponOrder, rand)
  return rand
end
2018-09-01 10:55:48