Menu
CoddyTech

Guía de Range

Parte de la sección Fundamentos del Journey de Rust de Coddy. Lección 65 de 75.

En esta lección exploraremos más a fondo cómo funciona range.

Rango de sintaxis básica:

  • start..end - Crea un rango desde start hasta end (exclusive)
  • start..=end - Crea un rango desde start hasta end (inclusive)
  • ..end - Crea un rango hasta end (exclusivo) sin valor inicial. Un bucle for no puede usarlo, pero permite obtener una porción de una matriz desde el índice 0: &arr[..3] son los primeros 3 elementos
  • ..=end - Crea un rango hasta end (inclusive) sin valor inicial, y se usa de la misma manera: &arr[..=3] son los primeros 4 elementos
  • start.. - Crea un rango desde start hasta el infinito
  • .. - Crea un rango desde el infinito negativo hasta el infinito positivo

Invierte el rango usando .rev():

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

Saltos de paso 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 ejemplo:

// Rango ascendente básico
for i in 0..5 { }
// Valores: 0, 1, 2, 3, 4
// Rango inclusivo
for i in 0..=5 { }
// Valores: 0, 1, 2, 3, 4, 5
// Rango inverso
for i in (0..5).rev() { }
// Valores: 4, 3, 2, 1, 0
// Avanza de 2 en 2
for i in (0..10).step_by(2) { }
// Valores: 0, 2, 4, 6, 8
// Combina reverse y step
for i in (0..10).rev().step_by(3) { }
// Valores: 9, 6, 3, 0
challenge icon

Desafío

Fácil

Se te dan dos arrays, numbers1 y numbers2. Imprime una línea para cada uno:

  • Array 1: empieza en la última posición de numbers1 y avanza hacia atrás de 3 en 3 posiciones (índices 25, 22, 19, ...), imprimiendo el valor de cada posición.
  • Array 2: recorre numbers2 desde el último elemento hasta el primero e imprime solo los valores divisibles por 4.

Imprime cada valor entre corchetes, con , entre los valores y nada después del último:

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

Pruébalo tú mismo

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: ");
    // Escribe tu código aquí
    
    println!();
    print!("Array 2: ");
    // Escribe tu código aquí
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos

Practica por tu cuenta: Compilador de Rust online