回答編集履歴

1

ローカル変数のmutの非一貫性の例として `Cell<T>` のほかに `Box<T>` を追加

2018/02/22 07:25

投稿

qnighy
qnighy

スコア210

test CHANGED
@@ -114,7 +114,7 @@
114
114
 
115
115
 
116
116
 
117
- つまり、 `let mut` は「そのローカル変数自体を書き換えられる」という状況を可能な限り再現する規則になっています。しかし、 `let x : Cell<T>` とすれば `x` 自体を書き換えられるので、あくまで「可能な限り再現する」という言い方が妥当だと思います。
117
+ つまり、 `let mut` は「そのローカル変数自体を書き換えられる」という状況を可能な限り再現する規則になっています。しかし、 `let x : Cell<T>` とすれば `x` 自体を書き換えられるので、あくまで「可能な限り再現する」という言い方が妥当だと思います。(また逆に、 `let x : Box<T>` では `T` はヒープ上にあるにも関わらずimmutable扱いになります。)
118
118
 
119
119
 
120
120