Propiedad y move en Rust
La propiedad (ownership): cada valor tiene un solo dueño, y pasarlo lo mueve.
fn takes_ownership(s: String) -> usize {
s.len()
}
fn main() {
let text = String::from("hello");
let n = takes_ownership(text);
// `text` has moved into the function; only `n` remains
let a = String::from("keep");
let b = a.clone();
println!("{n} {a} {b}");
}
Cómo funciona
- Pasar un
Stringlo mueve dentro de la función. - Después de un move, la vinculación original queda inutilizable.
clonecrea una copia independiente para conservar ambos.
Palabras clave y builtins usados aquí
Stringfnletusize
El intento, en números
- Líneas
- 13
- Caracteres a escribir
- 261
- Tokens
- 71
- Ritmo de tres estrellas
- 90 tpm
Al ritmo de tres estrellas de 90 tokens por minuto, este intento toma unos 47 segundos.
Paso 1 de 3 en Movimiento y clonación; paso 1 de 15 en Propiedad y préstamos.