Tarantool CE/EE Documentation portal logo
Помощь
Обновлена 15 сентября 2026 г. в 08:55

sequence_object:next()

sequence_object:next()

Генерация следующего значения и его возврат.

Алгоритм генерации прост:

  • Если это первый вызов, возвращается значение STARTS WITH.
  • Если предыдущее значение плюс значение INCREMENT меньше значения MINIMUM или больше значения MAXIMUM, это «переполнение», поэтому либо выводится ошибка (если cycle = false), либо возвращается значение MAXIMUM (если cycle = true и step < 0), либо возвращается значение MINIMUM (если cycle = true и step > 0).

Если ошибки не было, возвращенный результат сохраняется — теперь это «предыдущее значение».

Например, предположим, что последовательность 'S' имеет:

  • min == -6,
  • max == -1,
  • step == -3,
  • start = -2,
  • cycle = true,
  • предыдущее значение = -2.

Тогда box.sequence.S:next() вернет -5, потому что -2 + (-3) == -5.

Затем box.sequence.S:next() снова вернет -1, потому что -5 + (-3) < -6, что является переполнением, вызывающим цикл, а max == -1.

Эта функция требует права «write» на последовательность.