Если вы знаете, сколько вы хотите добавить за шаг (например, 0.1
), вы также можете использовать generateSequence
вместо:
val yourSequence = generateSequence(BigDecimal.ZERO) {
it + BigDecimal("0.1")
}.takeWhile { it < BigDecimal.TEN }
После этого вы можете назвать что-то вроде yourSequence.forEach(::println)
, если хотите.
Если вы хотите вместо этого бесконечную последовательность, просто пропустите takeWhile
, например, достаточно:
generateSequence(BigDecimal.ZERO) {
it + BigDecimal("0.1")
}
Применение его к функции («отформатированной» так, что все сразу видно):
fun generateNumbers(from: BigDecimal = BigDecimal.ZERO,
uptoExclusive: BigDecimal = BigDecimal.TEN,
step: BigDecimal = BigDecimal("0.1")
) = generateSequence(from) { it + step }
.takeWhile { it < uptoExclusive }
Пример использования:
generateNumbers().forEach(::println)
generateNumbers(BigDecimal.ONE, step = BigDecimal.ONE).forEach(::println)