回答編集履歴
3
誤字を修正しました
test
CHANGED
@@ -62,7 +62,7 @@
|
|
62
62
|
|
63
63
|
|
64
64
|
|
65
|
-
たとえば `S` に `fn f(&self)` というメソッドを実装したとき、`s.y` が変更できてしまうと問題があります。
|
65
|
+
たとえば `S` に `fn f(&self)` というメソッドを実装したとき、`self.y` が変更できてしまうと問題があります。
|
66
66
|
|
67
67
|
|
68
68
|
|
2
わかりやすさのために最初の段落を修正しました
test
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
私もそうだと思います。
|
5
|
+
私もそうだと思います。struct 全体またはフィールドを借用する際、フィールドが mutable になるかは、struct のフィールド定義(`y: &mut i32`)ではなく、struct 自体の mutability で決まるようです。
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
-
たとえば以下のように `y` フィールド
|
9
|
+
たとえば以下のように `s` が immutable の時に `y` フィールドの mutable な参照を作ろうとしてもコンパイルできません。
|
10
10
|
|
11
11
|
|
12
12
|
|
1
わかりやすさのためにコードコメントを追加
test
CHANGED
@@ -20,7 +20,7 @@
|
|
20
20
|
|
21
21
|
let s = S { y: &mut x };
|
22
22
|
|
23
|
-
let z_y = &mut s.y;
|
23
|
+
let z_y = &mut s.y; // y フィールドだけ mut 借用
|
24
24
|
|
25
25
|
*z_y = &mut v;
|
26
26
|
|