Para e a partir de Sequências de Caracteres

Converter para Sequência de Caracteres

Converter qualquer tipo para uma String é tão simples quando implementar a característica ToString para o tipo. Ao invés de fazer isto diretamente, deves implementar a característica fmt::Display que auto-magicamente fornece ToString e também permite imprimir o tipo conforme discutidos na seção print!.

use std::fmt;

struct Circle {
    radius: i32
}

impl fmt::Display for Circle {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        write!(f, "Circle of radius {}", self.radius)
    }
}

fn main() {
    let circle = Circle { radius: 6 };
    println!("{}", circle.to_string());
}

Analisando uma Sequência de Caracteres

Um dos tipos mais comum a converter para uma sequência de caracteres é um número. A abordagem idiomática para isto é usar a função parse e ou organizar para a inferência de tipo ou especificar o tipo a analisar usando a sintaxe 'turbofish'. Ambas alternativas são mostradas no seguinte exemplo.

Isto converterá a sequência de caracteres para o tipo especificado enquanto a característica FromStr é implementada para este tipo. Isto é implementado para numerosos tipos dentro da biblioteca padrão. Para obter esta funcionalidade num tipo definido pelo utilizador simplesmente implemente a característica FromStr para este tipo.

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

    let sum = parsed + turbo_parsed;
    println!("Sum: {:?}", sum);
}