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
&stracepta literales yStringpor deref.- Devuelve
Stringcuando la función crea texto nuevo. as_stry&tienden el puente en ambas direcciones.
Palabras clave y builtins usados aquí
Stringfnletstr
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.
Paso 4 de 4 en Slices y cadenas; paso 10 de 15 en Propiedad y préstamos.