O que é um Intervalo?
Parte da seção Lógica e Fluxo do Journey de Ruby da Coddy — lição 6 de 56.
Você já usou ranges com for loops e fatiamento de arrays. Mas um range é um objeto Ruby real, não apenas sintaxe; ele possui seus próprios métodos.
Crie um com .. (dois pontos, inclusivo) ou ... (três pontos, exclusivo do valor final):
inclusive = 1..5 # 1, 2, 3, 4, 5
exclusive = 1...5 # 1, 2, 3, 4Converta um intervalo para um array com to_a para ver exatamente o que ele abrange:
puts (1..5).to_a.inspect # [1, 2, 3, 4, 5]
puts (1...5).to_a.inspect # [1, 2, 3, 4]Intervalos não servem apenas para números. Eles funcionam com qualquer coisa que tenha uma ordem, incluindo letras:
puts ("a".."e").to_a.inspect # ["a", "b", "c", "d", "e"]Desafio
InicianteLeia dois números inteiros (duas linhas de entrada): um start e um end_value. Imprima três linhas:
- O intervalo inclusivo
start..end_valuecomo um array (useinspect) - O intervalo exclusivo
start...end_valuecomo um array - O tamanho do intervalo inclusivo
Para a entrada 1 e depois 5, a saída é:
[1, 2, 3, 4, 5]
[1, 2, 3, 4]
5Folha de consulta
Intervalos em Ruby usam .. (inclusivo) ou ... (exclusivo do fim):
inclusive = 1..5 # 1, 2, 3, 4, 5
exclusive = 1...5 # 1, 2, 3, 4Converta um intervalo para um array com to_a:
puts (1..5).to_a.inspect # [1, 2, 3, 4, 5]
puts (1...5).to_a.inspect # [1, 2, 3, 4]Intervalos também funcionam com letras:
puts ("a".."e").to_a.inspect # ["a", "b", "c", "d", "e"]Experimente você mesmo
start = gets.to_i
end_value = gets.to_i
# TODO: imprimir o intervalo inclusivo, o intervalo exclusivo e o tamanho inclusivo
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Lógica e Fluxo
1Strings a Fundo
Visão Geral de Métodos de StringInterpolação de StringsIterando sobre StringsSplit e JoinRecapitulação - String Weaver4Blocos, Procs e Lambdas
O que é um Bloco?do..end vs ChavesA palavra-chave yieldParâmetros de BlocoProcs e LambdasRecapitulação - Iterador Customizado7Hashes Parte 2
Hash.new com Valores PadrãoIterando em HashesHashes AninhadosMesclando e TransformandoRecapitulação - Contador de Frequência10Projeto - Registros de Alunos
Visão Geral do ProjetoAdicionar Aluno2Intervalos
O que é um Intervalo?Métodos de IntervaloIntervalos em Case / WhenRecapitulação - Prática com Intervalos5O Poder do Enumerable
Select e RejectEncadeando o MapReduce / Injectcount, all?, any?, none?group_by e partitionsort_by, min_by, max_byRecapitulação - Data Pipeline