7
let hello1 = "Hello, world!";
let hello2 = "Hello, world!".to_string();
let hello3 = String::from("Hello, world!");
let hello1 = "Hello, world!";
let hello2 = "Hello, world!".to_string();
let hello3 = String::from("Hello, world!");
let hello1 = "Hello, world!";
これは、列スライス(&str
)を作成します。特に、&'static str
は、プログラムの全期間存続する文字列スライスです。ヒープメモリは割り当てられません。文字列のデータはプログラム自体のバイナリ内に存在します。
let hello2 = "Hello, world!".to_string();
これは所有し、割り当てられた文字列(String
)を作成、Display
を実装任意タイプをフォーマットするフォーマッティング機械を使用します。 1.9.0より前のバージョンのRustでは(特にthis commitのため)、これはString::from
を使用して直接変換するよりも遅いです。バージョン1.9.0以降では、文字列リテラルで.to_string()
を呼び出すと、String::from
と同じ速度になります。
let hello3 = String::from("Hello, world!");
これは、効率的に所有する、割り当てられた文字列(String
)に文字列スライスを変換します。
let hello4 = "hello, world!".to_owned();
String::from
と同じ。
も参照してください: