13/07/22 NY:AN:NY.AN .net
>>89
昔は構造体のフィールドに mut をつけて、そこだけミュータブルにすることはできたね。
今は、データの所有者のミュータビリティが継承されるという仕様だから、
データの一部だけがミュータブルということはなくて、
全部ミュータブルかイミュータブルの2つしかない。
ただし、例外が @ で表されるマネージドボックス。
これは所有者が複数いるので、所有者のミュータビリティを継承するのでは無く、
ボックス自体がミュータブルかイミュータブルかの属性をもっている (@ と @mut)。
なので、@ を使えば C++ でいう例のようなことは一応できる。
Rust では @ の使用をできるだけ避けようという風潮があるから、
C++ と同じ事をやる目的で @ を使うのはあまり推奨されないとは思う。