Séries (Ranges)

O primeiro e talvez o mais natural uso das séries (intervalos ou, em inglês, ranges) é para expressar uma sequência. Sequências tem um ponto de início, um ponto de término e um modo de produzir valores sucessivos na sequência. No Ruby, essas sequências são criadas usando os operadores de intervalo “..” e “…”. A forma com dois pontos cria uma série inclusiva e a forma de três pontos cria uma série que exclui o valor mais alto especificado. No Ruby as séries não são interpretadas internamente como listas: a sequência 1..100000 é armazenada como um objeto do tipo Range contendo referências a dois objetos Fixnum. Remeta-se ao programa p021ranges.rb. Caso você precise, é possível converter uma série para uma lista (array) usando o método to_a.

1 (1..10).to_a -> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Séries implementam métodos que permitem que você itere sobre elas e teste seus conteúdos de diversas maneiras.

 1 # p021ranges.rb  
 2 =begin
 3   Sequências tem um ponto de início, de término 
 4   e um modo de produzir valores sucessivos
 5   No Ruby, essas sequências são criadas usando os 
 6   operadores de intervalo ".." e "...".
 7   A forma com dois pontos cria uma série
 8   inclusiva e a forma de três pontos cria uma 
 9   série que exclui o valor mais alto especificado.
10 =end  
11 digitos = -1..9  
12 puts digitos.include?(5)          # true  
13 puts digitos.min                  # -1  
14 puts digitos.max                  # 9  
15 puts digitos.reject {|i| i < 5 }  # [5, 6, 7, 8, 9]

Outro uso do versátil Range é para testar um intervalo: verificar se algum valor está dentro do intervalo representado pela série. Fazemos isso usando o operador de igualdade ===.

1 (1..10) === 5       -> true  
2 (1..10) === 15      -> false  
3 (1..10) === 3.14159 -> true  
4 ('a'..'j') === 'c'  -> true  
5 ('a'..'j') === 'z'  -> false

Logo do Guru-SP

Este material tem como base o tutorial do RubyLearning.com de Satish Talim e foi traduzido por membros do GURU-SP com a permissão do autor.

Ajude o RubyLearning participando em algum dos cursos pagos ou fazendo uma doação para o projeto

Voltar para o índice