Stringsから変換、Stringに変換

Stringに変換

ある型からStringに変換するには、その型にToStringトレイトを実装するだけで 良いです。 直接実装するより、print!節で説明したように、ToStringを 自動的に提供するfmt::Displayトレイトを実装した方が良いです。

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());
}

Stringを解析する

文字列から変換される最も一般的な型は数値型です。慣用的なアプローチは、 parse関数を使い、型推論か「ターボフィッシュ(turbofish)」構文を 使って型を指定することです。両方の例が以下に紹介されています。

これで文字列をその型にFromStrトレイトが実装されている限り、指定した型に変換することが できます。これは標準ライブラリ内の数多くの型で実装できます。この機能をユーザー定義型に 追加するには、単純にFromStrトレイトを実装すればよいだけです。

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

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