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 intervalos com loops for e fatiamento de arrays. Mas um intervalo é um objeto Ruby real, não apenas uma sintaxe; ele tem 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]
5Experimente 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 em Profundidade
Visão Geral dos Métodos de StringInterpolação de StringsPercorrendo StringsDividir e UnirRecapitulação - String Weaver4Blocos, Procs e Lambdas
O que é um Bloco?do..end vs ChavesA Palavra-chave yieldParâmetros de BlocoProcs e LambdasRevisão - Iterador Personalizado7Hashes - Parte 2
Hash.new com Valores PadrãoIterando sobre 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 / WhenRevisão - Prática com intervalos5Potência do Enumerable
Select e RejectEncadeando MapReduce / Injectcount, all?, any?, none?group_by e partitionsort_by, min_by, max_byRecapitulação - Pipeline de DadosPratique por conta própria: Compilador de Ruby online