Modificando Arrays
Parte da seção Fundamentals do Journey de Rust da Coddy — lição 58 de 75.
Além de acessar os elementos de um array, você também pode modificá-los. Para modificar um elemento específico, primeiro você precisa de mut para tornar um array modificável e, então, você pode atribuir um novo valor a ele usando seu índice.
Aqui está um exemplo:
let mut my_array = ["apple", "banana", "cherry"];
my_array[1] = "orange";
println!("{}, {}, {}", my_array[0], my_array[1], my_array[2]);Saída:
apple, orange, cherrybanana foi alterada para uma orange.
Desafio
FácilCrie um programa que receba 3 entradas:
- A primeira entrada é uma string de valores separados por vírgula (por exemplo
1,2,3,4,5) de comprimento 5. - A segunda entrada é um índice
- A terceira entrada é um novo elemento
O código inicial já converte a string separada por vírgulas em um array mutável chamado arr — você pode trabalhar diretamente com ele sem escrever nenhum código de conversão.
O programa imprimirá um array modificado, alterando o elemento no índice armazenado na segunda entrada com o valor da terceira entrada.
Folha de consulta
Para modificar elementos de um array, o array deve ser declarado com mut:
let mut my_array = ["apple", "banana", "cherry"];
my_array[1] = "orange";
println!("{}, {}, {}", my_array[0], my_array[1], my_array[2]);Isso altera o elemento no índice 1 de "banana" para "orange".
Experimente você mesmo
use std::io;
use std::convert::TryInto;
fn main() {
let mut input_str_arr = String::new();
let mut input_index = String::new();
let mut new_element = String::new();
io::stdin().read_line(&mut input_str_arr).unwrap();
io::stdin().read_line(&mut input_index).unwrap();
io::stdin().read_line(&mut new_element).unwrap();
let new_element = new_element.trim().to_string();
let index: usize = input_index.trim().parse().unwrap();
let mut arr: [String; 5] = input_str_arr.split(',').map(String::from).collect::<Vec<String>>().try_into().unwrap();
// Escreva seu código abaixo
// Use arr, index e new_element para resolver o desafio
for i in 0..arr.len() {
print!("{} ", arr[i]);
}
}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
4Operadores Parte 1
Operadores AritméticosOperador de MóduloAtalhos AritméticosOperadores de ComparaçãoComparação de Strings7Entrada e Saída Básica
Exibindo no ConsoleLendo a Entrada do UsuárioRevisão - Até 120Revisão - Verdadeiro ou Falso5Operadores Parte 2
Operadores Lógicos Parte 1Operadores Lógicos Parte 2Recapitulação - Lógica SimplesOperadores Lógicos Parte 33Variáveis Parte 2
Declaração de TipoConvenções de NomenclaturaInferência de TipoRecapitulação - Inicializar VariáveisConversão de Tipo9Laços
For sobre SériesLaço WhileBreakContinueLaços AninhadosRótulos de LoopLoop InfinitoRecapitulação - Entrada Dinâmica12Fundamentos de Arrays
Declarando ArraysArray como ParâmetroAcessando ElementosModificando ArraysRecapitulação - Pretty Print de Array