typestar

Clone y Copy en Rust

Los tipos Copy se duplican en silencio; todo lo demás se mueve salvo que pidas un clone.

fn main() {
    let a = 7;
    let b = a;
    println!("{a} and {b} both fine");

    let owned = String::from("tours");
    let copy = owned.clone();
    println!("{owned} / {copy}");

    let moved = owned;
    println!("{moved} now holds it");

    let list = vec![1, 2, 3];
    let same_again = list.clone();
    println!("{:?} {:?}", list, same_again);
}

Cómo funciona

  1. Los enteros son Copy: la asignación deja el original usable.
  2. Un String se mueve, y clone es la copia profunda explícita.
  3. clone cuesta una asignación de memoria — por eso no es implícito.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
16
Caracteres a escribir
315
Tokens
95
Ritmo de tres estrellas
90 tpm

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

Escribe este fragmento

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

← Anterior Siguiente →