Rust 文字列を結合する

Rust 文字列を結合する

Rustで、文字列を結合するサンプルコードを記述してます。「format!」か「+」演算子を使用します。Rustのバージョンは1.66.0を使用してます。

環境

  • OS windows11 home
  • rustc 1.66.0

文字列を結合

文字列を結合するには「format!」を使用します。

fn main() {

    let str1: String = "hello".to_string();
    let str2: String = "world".to_string();
    
    println!( "{}", format!( "{}{}", str1, str2 ) ); // helloworld

}

2個以上あっても同じです。

fn main() {

    let str1: String = "hello".to_string();
    let str2: String = "world".to_string();
    let str3: String = "!!".to_string();

    println!( "{}", format!( "{}{}{}", str1, str2, str3 ) );
    // helloworld!!
    
}

「+」を使用

文字列リテラルを使用する場合は、右側に文字列リテラルを使用すれば「+」が使用できます。

fn main() {

    let str1: String = "hello".to_string();
    let str2: &str = "!!";

    println!( "{}", str1 + str2 );
    // hello!!
    
}

ただし、2個以上の場合はエラーとなります。

fn main() {

    let str1: String = "hello".to_string();
    let str2: String = "world".to_string();
    let str3: &str = "!!";

    println!( "{}", str1 + str2 + str3 );
    
}

エラーメッセージ

error[E0308]: mismatched types
 --> sample.rs:7:28
  |
7 |     println!( "{}", str1 + str2 + str3 );
  |                            ^^^^
  |                            |
  |                            expected `&str`, found struct `String`
  |                            help: consider borrowing here: `&str2`

error: aborting due to previous error

左側だけ文字列リテラルでない場合は、エラーになりません。

fn main() {

    let str1: String = "hello".to_string();
    let str2: &str = "world";
    let str3: &str = "!!";

    println!( "{}", str1 + str2 + str3 );
    // helloworld!!
    
}