RCIE-ジャンクのコード屋

主に自分のためにコーディングのTIPSを蓄積しています。

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! と同じような感覚で文字列を生成できる。