typestar

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

  1. Pasar un String lo mueve dentro de la función.
  2. Después de un move, la vinculación original queda inutilizable.
  3. clone crea una copia independiente para conservar ambos.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 1 de 3 en Movimiento y clonación; paso 1 de 15 en Propiedad y préstamos.

Siguiente →