Menu
Coddy logo textTech

Guia de Range

Parte da seção Fundamentals do Journey de Rust da Coddy — lição 65 de 75.

Nesta lição, exploraremos mais sobre como o range funciona.

Sintaxe Básica de Range:

  • start..end - Cria um intervalo de start até end (exclusivo)
  • start..=end - Cria um intervalo de start até end (inclusivo)
  • ..end - Cria um intervalo de 0 até end (exclusivo)
  • ..=end - Cria um intervalo de 0 até end (inclusivo)
  • start.. - Cria um intervalo de start até o infinito
  • .. - Cria um intervalo do infinito negativo ao infinito positivo

Intervalo reverso usando .rev():

  • (0..5).rev() - 4, 3, 2, 1, 0
  • (0..=5).rev() - 5, 4, 3, 2, 1, 0

Saltos usando .step_by(n):

  • (0..10).step_by(2) - 0, 2, 4, 6, 8
  • (0..10).rev().step_by(2) - 9, 7, 5, 3, 1

Por exemplo:

// Intervalo progressivo básico
for i in 0..5 { }
// Valores: 0, 1, 2, 3, 4
// Intervalo inclusivo
for i in 0..=5 { }
// Valores: 0, 1, 2, 3, 4, 5
// Intervalo reverso
for i in (0..5).rev() { }
// Valores: 4, 3, 2, 1, 0
// Incrementar de 2 em 2
for i in (0..10).step_by(2) { }
// Valores: 0, 2, 4, 6, 8
// Combina inversão e passo
for i in (0..10).rev().step_by(3) { }
// Valores: 9, 6, 3, 0
challenge icon

Desafio

Fácil

Crie um programa que comece com dois arrays de números e imprima, para o primeiro array, todos os números em ordem reversa saltando de 3 em 3 posições do array, e para o segundo, imprima todos os números que são divisíveis por 4 em ordem reversa.  Imprima no seguinte formato:

Array 1: [1], [2], [3], ...
Array 2: [1], [2], [3], ...

Folha de consulta

Sintaxe de intervalo (range) em Rust:

  • start..end - Cria um intervalo de start até end (exclusivo)
  • start..=end - Cria um intervalo de start até end (inclusivo)
  • ..end - Cria um intervalo de 0 até end (exclusivo)
  • ..=end - Cria um intervalo de 0 até end (inclusivo)
  • start.. - Cria um intervalo de start até o infinito
  • .. - Cria um intervalo do infinito negativo ao infinito positivo

Intervalos reversos usando .rev():

  • (0..5).rev() - 4, 3, 2, 1, 0
  • (0..=5).rev() - 5, 4, 3, 2, 1, 0

Saltos de etapa usando .step_by(n):

  • (0..10).step_by(2) - 0, 2, 4, 6, 8
  • (0..10).rev().step_by(2) - 9, 7, 5, 3, 1
// Intervalo progressivo básico
for i in 0..5 { }
// Valores: 0, 1, 2, 3, 4

// Intervalo inclusivo
for i in 0..=5 { }
// Valores: 0, 1, 2, 3, 4, 5

// Intervalo reverso
for i in (0..5).rev() { }
// Valores: 4, 3, 2, 1, 0

// Passo de 2
for i in (0..10).step_by(2) { }
// Valores: 0, 2, 4, 6, 8

// Combinação de reverso e passo
for i in (0..10).rev().step_by(3) { }
// Valores: 9, 6, 3, 0

Experimente você mesmo

fn main() {
    let numbers1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26];
    let numbers2 = [17, 53, 24, 77, 84, 98, 24, 36, 89, 31, 36];
    print!("Array 1: ");
    // Escreva seu código aqui
    
    println!();
    print!("Array 2: ");
    // Escreva seu código aqui
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentals