Rust エラー「error[E0308]: mismatched types」が発生した場合の対処法

Rust エラー「error[E0308]: mismatched types」が発生した場合の対処法

Rustで、エラー「error[E0308]: mismatched types」が発生した場合の対処法を記述してます。Rustのバージョンは1.62.0を使用してます。

環境

  • OS windows11 home
  • rustc 1.62.0

エラー全文

以下のコードで発生

fn main() {

    let str1: String = "aaa".to_string();
    let str2: String = "bbb".to_string();

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

エラー全文

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

error: aborting due to previous error

原因

to_string関数で変換したもの同士を結合するのに「+」は使用できないため

対処法

「format!」を使用する

fn main() {

    let str1: String = "aaa".to_string();
    let str2: String = "bbb".to_string();

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