A y desde String

Convertir a String

Convertir cualquier tipo en un String es tan simple como implementar el rasgo ToString para el tipo. En lugar de hacerlo directamente, debe implementar el rasgo fmt::Display que proporciona automáticamente ToString y también permite imprimir el tipo como se explica en la sección sobre print!.

use std::fmt;

struct Circulo {
    radio: i32
}

impl fmt::Display for Circulo {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        write!(f, "Circulo de radio {}", self.radio)
    }
}

fn main() {
    let circulo = Circulo { radio: 6 };
    println!("{}", circulo.to_string());
}

Analizar un String

Uno de los tipos más comunes para convertir una cadena es un número. El enfoque idiomático para esto es usar la función parse y arreglar la inferencia de tipos o especificar el tipo a analizar usando la sintaxis 'turbofish'. Ambas alternativas se muestran en el siguiente ejemplo.

Esto convertirá la cadena en el tipo especificado siempre que se implemente el rasgo FromStr para ese tipo. Esto se implementa para numerosos tipos dentro de la biblioteca estándar. Para obtener esta funcionalidad en un tipo definido por el usuario, simplemente implemente el rasgo FromStr para ese tipo.

fn main() {
    let analizado: i32 = "5".parse().unwrap();
    let turbo_analizado = "10".parse::<i32>().unwrap();

    let suma = analizado + turbo_analizado;
    println!("Suma: {:?}", suma);
}