Rust 文字列の連結・結合 String::from, +=, format!
概要
- 文字列の連結は、4種類くらいやり方がある。
- 編集可能な文字列に対して「+=」で連結できる。
- シンプルな方法もある。
プログラム例
- 文字列「ABCD」と「EFG」と「HIJK」を連結して、それを表示する。
fn main() { let mut 連結 = String::from("ABCD"); // └ let mut ◁編集可能な変数。 // └ String::from("ABCD"); ◁「ABCD」を入れる。 連結 += "EFG"; 連結 += "HIJK"; println!("{}", 連結); }
解説
- 最初に「String::new()」で新しい作業用の文字列を作る。
- 文字列を編集するために「let」の代わりに「let mut」が必要。
- 「+=」で連結すると、どんどん長さが伸びる。
プログラム例2
- 「ABCD」と「EFG」と「HIJK」を連結する。1行で書く。
fn main() { // パターン1 let 連結 = String::from("ABCD") + "EFG" + "HIJK"; println!("{}", 連結); // パターン2 let 連結 = String::new() + "ABCD" + "EFG" + "HIJK"; println!("{}", 連結); // パターン3 let 連結 = format!("{}{}{}", "ABCD", "EFG", "HIJK"); println!("{}", 連結); }
解説
- 文字列同士は「+」で結合できる。
- 「let 連結 = "ABCD" + "EFG" + "HIJK";」に変えても、Rust ではエラーになる。
- 「String::from("ABCD")」のように編集用の文字列を用意するのがルール。
- パターン3のような「format!」は println! と同じような感覚で文字列を生成できる。