文字列関連の型の使い分け
以下の3つの型の使い分けに慣れておらず、コンパイラに怒られるまま修正していき、気づいたらぐちゃぐちゃになっている。
- &str
- String
- &String
今の理解で使い分け方針をまとめておく。
&str
基本これで行く。リテラルもこれ。
String
構造体のフィールドはこれ。
あとはAPIがStringを要求する場合。
例えば std::env::args() は Stringを返す。
取得した String を処理する関数とかは、&strに変換して受け取る。
&String
これを使うことはほぼないはず。