É bastante comum trabalharmos com números sequênciais. E, para isso, não é necessário criarmos uma estrutura de iteração para incrementar um contador, por exemplo.

A melhor forma de se ter número sequênciais, em ruby, é utilizar os ranges

 

Criando um range

Exitem duas maneiras de se criar um range: a primeira é utilizando 2(dois) pontos (..) e a segunda utilizando 3(três) pontos (…) . A diferença entre eles é que quando utilizamos “..” estamos incluindo o último número informado, já com “…” estamos excluindo o último número informado.

numeros = 1..10
numeros2 = 1...10

 

Iterando um range

(1..10).each{|num| puts num}

(1.0..5.0).each{|num| puts num}#error

 

Embora seja permitido se criar um range de Float, não é permitido iterá-lo, visto que a classe Float não possui um método succ

Convertendo para Array

num_array = numeros.to_a #[1,2,3,4,5,6,7,8,9,10]
num2_array = numeros2.to_a #[1,2,3,4,5,6,7,8,9]