Menu
Coddy logo textTech

Acessando Elementos do Vetor

Parte da seção Logic & Flow do Journey de Rust da Coddy — lição 10 de 66.

Depois de ter um vetor com elementos, você precisará acessar valores individuais. Rust oferece duas abordagens diferentes para obter elementos de um vetor, cada uma com suas próprias compensações entre conveniência e segurança.

O primeiro método usa sintaxe de índice com colchetes, semelhante a arrays:

let numbers = vec![10, 20, 30, 40];
let first = numbers[0]; // obtém 10
let third = numbers[2]; // obtém 30

Embora essa sintaxe seja familiar e concisa, ela possui um risco significativo: se você tentar acessar um índice que não existe, seu programa entrará em pânico (panic) e travará:

let numbers = vec![10, 20, 30];
let invalid = numbers[5]; // Isso causará um pânico!

O segundo método usa o método .get(), que fornece acesso seguro:

let numbers = vec![10, 20, 30, 40];
let first = numbers.get(0); // retorna Some(10)
let invalid = numbers.get(5); // retorna None

O método .get() retorna um Option - seja Some(value) se o índice existir, ou None se não existir. Isso força você a lidar com a possibilidade de que o elemento possa não existir, prevenindo falhas e tornando seu código mais robusto.

challenge icon

Desafio

Fácil

Escreva uma função get_element_at que recebe um vetor numbers e um índice idx, e retorna o elemento naquele índice usando acesso seguro.

Use o método .get() para acessar o elemento de forma segura. Se o índice existir, retorne o valor. Se o índice não existir, retorne -1 como um valor padrão.

Parâmetros:

  • numbers (Vec<i32>): O vetor para acessar
  • idx (i32): O índice para recuperar

Retorna: O elemento no índice fornecido, ou -1 se o índice não existir (i32)

Folha de consulta

Rust fornece dois métodos para acessar elementos de um vetor:

Sintaxe de índice com colchetes:

let numbers = vec![10, 20, 30, 40];
let first = numbers[0]; // obtém 10
let third = numbers[2]; // obtém 30

Este método causará um panic se o índice não existir:

let invalid = numbers[5]; // Isso causará um panic!

O método .get() para acesso seguro:

let numbers = vec![10, 20, 30, 40];
let first = numbers.get(0); // retorna Some(10)
let invalid = numbers.get(5); // retorna None

O método .get() retorna um tipo Option - ou Some(value) se o índice existir, ou None se não existir. Isso evita falhas e exige o tratamento explícito de elementos ausentes.

Experimente você mesmo

fn get_element_at(numbers: Vec<i32>, idx: i32) -> i32 {
    // Escreva o 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 Logic & Flow