Menu
CoddyTech

Guia de Range

Parte da seção Fundamentos do Journey de Rust da Coddy. Lição 65 de 75.

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

Sintaxe básica de intervalo:

  • start..end - Cria um intervalo de start a end (exclusivo)
  • start..=end - Cria um intervalo de start a end (inclusivo)
  • ..end - Cria um intervalo até end (exclusivo), sem valor inicial. Um loop for não pode usá-lo, mas ele pode fatiar um array a partir do índice 0: &arr[..3] são os primeiros 3 elementos
  • ..=end - Cria um intervalo até end (inclusivo), sem valor inicial, usado da mesma forma: &arr[..=3] são os primeiros 4 elementos
  • start.. - Cria um intervalo do início até o infinito
  • .. - Cria um intervalo do infinito negativo ao infinito positivo

Inverta o intervalo 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

Por exemplo:

// Intervalo crescente 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 em ordem inversa
for i in (0..5).rev() { }
// Valores: 4, 3, 2, 1, 0
// Avança de 2 em 2
for i in (0..10).step_by(2) { }
// Valores: 0, 2, 4, 6, 8
// Combine a ordem inversa e o passo
for i in (0..10).rev().step_by(3) { }
// Valores: 9, 6, 3, 0
challenge icon

Desafio

Fácil

Você recebe dois arrays, numbers1 e numbers2. Imprima uma linha para cada um:

  • Array 1: comece na última posição de numbers1 e volte 3 posições por vez (índices 25, 22, 19, ...), imprimindo o valor em cada posição.
  • Array 2: percorra numbers2 do último elemento ao primeiro e imprima apenas os valores divisíveis por 4.

Imprima cada valor entre colchetes, com , entre os valores e nada depois do último:

Array 1: [26], [23], [20], ...
Array 2: [36], [36], ...

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 Fundamentos

Pratique por conta própria: Compilador de Rust online