teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

誤字を修正しました

2021/05/02 04:31

投稿

tatsuya6502
tatsuya6502

スコア2055

answer CHANGED
@@ -3,11 +3,11 @@
3
3
  - 例1のクロージャ:`FnOnce`トレイトだけを実装している
4
4
  - 例2のクロージャ:`FnOnce`トレイトと`FnMut`トレイトの両方を実装している
5
5
 
6
- `FnMut`トレイトを実装するときは、そのクロージャ束縛されている変数(`func`)に`mut`キーワードが必要になります。
6
+ `FnMut`トレイトを実装するときは、そのクロージャ束縛されている変数(`func`)に`mut`キーワードが必要になります。
7
7
 
8
8
  なぜそうなのか、もう少し詳しく説明しましょう。
9
9
 
10
- クロージャは「無名関数」と「捕捉した環境」からなるデータ構造です。Rustではクロージャを作る構文(例:`|| {..}`)は糖衣構文になっており、コンパイラはそれに対して以下を自動生成します。
10
+ クロージャは「無名関数」と「捕捉した環境」からなるデータ構造です。Rustではクロージャを作る構文(`|| {..}`)は糖衣構文になっており、コンパイラはそれに対して以下を自動生成します。
11
11
 
12
12
  - 環境を表現するための匿名型(匿名の`struct`)
13
13
  - 環境に対するクロージャトレイトの実装。無名関数はそれらのトレイトが要求するトレイトメソッドとして実装される
@@ -27,7 +27,7 @@
27
27
  この場合、以下のような匿名型が作られます。
28
28
 
29
29
  ```rust
30
- struct MyFuncEnv<'a> {
30
+ struct FuncEnv1<'a> {
31
31
  count: &'a mut i32,
32
32
  str: String,
33
33
  }