ToStringFromStr

ToString

要把任何类型转换成 String,只需要实现那个类型的 ToString trait。然而不要直接这么做,您应该实现fmt::Display trait,它会自动提供 ToString,并且还可以用来打印类型,就像 print! 一节中讨论的那样。

  1. use std::string::ToString;
  2. struct Circle {
  3. radius: i32
  4. }
  5. impl ToString for Circle {
  6. fn to_string(&self) -> String {
  7. format!("Circle of radius {:?}", self.radius)
  8. }
  9. }
  10. fn main() {
  11. let circle = Circle { radius: 6 };
  12. println!("{}", circle.to_string());
  13. }

解析字符串

我们经常需要把字符串转成数字。完成这项工作的标准手段是用 parse 函数。我们得 提供要转换到的类型,这可以通过不使用类型推断,或者用 “涡轮鱼” 语法(turbo fish,<>)实现。

只要对目标类型实现了 FromStr trait,就可以用 parse 把字符串转换成目标类型。 标准库中已经给无数种类型实现了 FromStr。如果要转换到用户定义类型,只要手动实现 FromStr 就行。

  1. fn main() {
  2. let parsed: i32 = "5".parse().unwrap();
  3. let turbo_parsed = "10".parse::<i32>().unwrap();
  4. let sum = parsed + turbo_parsed;
  5. println!{"Sum: {:?}", sum};
  6. }