typestar

Tomar &str, devolver String en Rust

La convención de API: presta lo más barato que funcione, sé dueño de lo que devuelves.

fn shout(text: &str) -> String {
    text.to_uppercase()
}

fn initials(name: &str) -> String {
    name.split_whitespace()
        .filter_map(|part| part.chars().next())
        .collect()
}

fn main() {
    let owned = String::from("ada lovelace");
    println!("{}", shout("literal"));
    println!("{}", shout(&owned));
    println!("{}", shout(owned.as_str()));
    println!("{}", initials(&owned));
}

Cómo funciona

  1. &str acepta literales y String por deref.
  2. Devuelve String cuando la función crea texto nuevo.
  3. as_str y & tienden el puente en ambas direcciones.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
17
Caracteres a escribir
363
Tokens
128
Ritmo de tres estrellas
95 tpm

Al ritmo de tres estrellas de 95 tokens por minuto, este intento toma unos 81 segundos.

Escribe este fragmento

Paso 4 de 4 en Slices y cadenas; paso 10 de 15 en Propiedad y préstamos.

← Anterior Siguiente →