yohhoyの日記

技術的メモをしていきたい日記

str型とToStringトレイト

Rust 1.9にてstr型のToStringトレイト特殊化(specialization)が実装され、to_stringメソッドによるstr型からString型への変換処理が効率化された。[本記事はRust 1.11/Stable準拠]

Rust 1.8以前はトレイト実装特殊化は存在せず、to_stringメソッドはジェネリックだが非効率な実装が行われていた。Rust 1.9でRFC 1210が実験的にサポートされ、Rust標準ライブラリ内部実装にて適用された。

let s : String = "foo".to_string();
// String::from("foo")と等価

Rust 1.11現在、トレイト実装の特殊化は実験的な機能であり、Nightlyチャネル以外ではユーザ定義型での特殊化は利用できない。

関連URL