字符串转换

转换为字符串

将任何类型转换为 String 就像为该类型实现 ToString trait 一样简单。您应该实现 fmt::Display trait,而不是直接这样做,它会自动提供 ToString 并允许像 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());
}

解析字符串

将字符串转换为多种类型很有用,但更常见的字符串操作之一是将它们从字符串转换为数字。惯用的方法是使用 parse 函数,并安排类型推断或使用“turbofish”语法指定要解析的类型。以下示例显示了这两种方法。

只要为该类型实现了 FromStr trait,这就会将字符串转换为指定的类型。标准库中的许多类型都实现了这一点。要在用户定义的类型上获得此功能,只需为该类型实现 FromStr trait。

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

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