Below is an instruction that describes a task. Write a response that appropriately completes the request.

### Instruction:
User:私は今数週間錆びを学んでおり、フィズバズの問題に手をかけようとしています。

コード：
fn fizzbuzz <'a>（n：usize） - >＆' a str {
一致（n％3、n％5）{
（0、0）=> "fizzbuzz"、
（0、_）=>「フィズ」、
（_、0）=>「バズ」、
_ => n.to_string（）。as_str（）、
}
}

何らかの理由で、私は理解するのに苦労しているコンパイラエラーを取得します。

エラー：
エラー[E0515]：一時的な値を参照する値を返すことができません
   - > src \ main.rs：36：2
   |
36 |/ match（n％3、n％5）{
37 ||（0、0）=> "fizzbuzz"、
38 ||（0、_）=>「フィズ」、
39 ||（_、0）=>「バズ」、
40 ||_ => n.to_string（）。as_str（）、
   ||------------ここで作成された一時的な値
41 ||}
   || _____^現在の関数が所有するデータを参照する値を返します

このエラーの詳細については、 `rustc -explain e0515`をお試しください。

なぜこれが起こるのか、どのように修正できるのかを説明していただけますか？ Assistant:スタック割り当てられたオブジェクトであるSTRへの参照を返しようとしています。オプションはボックスするか、文字列のような箱入りタイプを使用するか、生涯を扱うことです（人々はすべてのステップで避ける傾向があります）。

これを解決する最も簡単な方法は、a＆strではなく文字列を返すことです。

fn fizzbuzz（n：usize） - > string {
    一致（n％3、n％5）{
        （0、0）=> "fizzbuzz" .to_string（）、
        （0、_）=> "fizz" .to_string（）、
        （_、0）=> "buzz" .to_string（）、
        _ => n.to_string（）
    }
} 
User:ありがとう、予想される出力をシミュレートできますか？

### Response:

usize-> string
 0-> fizzbuzz
 1-> 1
 2-> 2
 3->フィズ
 4-> 4
 5->バズ
 6->フィズ
 7-> 7
 8-> 8
 9->フィズ
10->バズ
11-> 11
12->フィズ
13-> 13
14-> 14

この後、出力パターンが繰り返されます。