Guía de Range
Parte de la sección Fundamentals del Journey de Rust de Coddy — lección 65 de 75.
En esta lección exploraremos más sobre cómo funciona range.
Sintaxis básica de rangos:
start..end- Crea un rango desde el inicio hasta el final (excluyente)start..=end- Crea un rango desde el inicio hasta el final (incluyente)
..end- Crea un rango desde 0 hasta end (excluyente)..=end- Crea un rango desde 0 hasta end (incluyente)
start..- Crea un rango desde start hasta el infinito..- Crea un rango desde el infinito negativo hasta el infinito positivo
Invertir 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 básico hacia adelante
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// Incrementar de 2 en 2
for i in (0..10).step_by(2) { }
// Valores: 0, 2, 4, 6, 8// Combinar reversa y paso
for i in (0..10).rev().step_by(3) { }
// Valores: 9, 6, 3, 0Desafío
FácilCrea un programa que comience con dos arreglos de números e imprima para el primero todos los números del primer arreglo en reversa en saltos de 3 a través de las posiciones del arreglo, y para el segundo imprima todos los números que sean divisibles por 4 en orden inverso. Imprime en el siguiente formato:
Array 1: [1], [2], [3], ...
Array 2: [1], [2], [3], ...Hoja de referencia
Sintaxis de rangos en Rust:
start..end- Crea un rango desde start hasta end (exclusivo)start..=end- Crea un rango desde start hasta end (inclusivo)..end- Crea un rango desde 0 hasta end (exclusivo)..=end- Crea un rango desde 0 hasta end (inclusivo)start..- Crea un rango desde start hasta el infinito..- Crea un rango desde el infinito negativo hasta el infinito positivo
Rangos inversos 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
// Rango hacia adelante 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
// Paso de 2 en 2
for i in (0..10).step_by(2) { }
// Valores: 0, 2, 4, 6, 8
// Combinar inverso y paso
for i in (0..10).rev().step_by(3) { }
// Valores: 9, 6, 3, 0Prué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í
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentals
4Operadores Parte 1
Operadores aritméticosOperador de móduloAtajos aritméticosOperadores de comparaciónComparación de strings5Operadores Parte 2
Operadores lógicos Parte 1Operadores lógicos Parte 2Repaso - Lógica simpleOperadores lógicos Parte 33Variables Parte 2
Declaración de tiposConvenciones de nomenclaturaInferencia de tiposResumen - Inicializar variablesConversión de tipos9Bucles
For sobre seriesBucle WhileBreakContinueBucle anidadoEtiquetas de bucleBucle infinitoResumen - Entrada dinámica