如果满足条件再次启动函数 [LUA]

If condition is met start function again [LUA]

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

local function fillArray()
    local rand = math.random( 1,8 )
    if has_value(weaponOrder, rand) then
        -- I WANT TO RESTART FUNCTION HERE
        return false
    end
    return rand
end
for i = 1,8 do
    order[i] = fillArray()
end

我想如果条件为真(has_value 是另一个检查数字是否再次存在的函数)再次启动该函数并 return 另一个结果。

使用repeat-until语句。

local function fillArray()
  local rand
  repeat
    rand = math.random( 1,8 )
  until not has_value(weaponOrder, rand)
  return rand
end