typestar

La API entry en Rust

Una búsqueda en vez de dos: entry te da la casilla, ocupada o no.

use std::collections::HashMap;

fn main() {
    let text = "the quick the lazy the end";
    let mut counts: HashMap<&str, u32> = HashMap::new();

    for word in text.split_whitespace() {
        *counts.entry(word).or_insert(0) += 1;
    }

    let mut groups: HashMap<usize, Vec<&str>> = HashMap::new();
    for word in text.split_whitespace() {
        groups.entry(word.len()).or_insert_with(Vec::new).push(word);
    }

    println!("{}", counts["the"]);
    println!("{:?}", groups.get(&4));
}

Cómo funciona

  1. or_insert devuelve una referencia mutable al valor.
  2. or_insert_with construye el valor por defecto solo si hace falta.
  3. *count += 1 escribe a través de esa referencia.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
18
Caracteres a escribir
448
Tokens
147
Ritmo de tres estrellas
90 tpm

Al ritmo de tres estrellas de 90 tokens por minuto, este intento toma unos 98 segundos.

Escribe este fragmento

Paso 5 de 8 en Colecciones; paso 34 de 39 en Fundamentos del lenguaje.

← Anterior Siguiente →