可変変数はキーワードmut
で宣言して初期化しますが、次のコード行で使用する場合はキーワードmut
を繰り返す必要があります。2回目に `mut 'の書き方を繰り返す必要があるのはなぜですか?
私は、いったん変数が宣言され、変数として初期化されると、そのままであることが予想されます。これは構文的な砂糖ですか、これには特別な理由がありますか?
私は上記のコードは次のようであることを期待するだろう:私はread_line
への呼び出しでmut
キーワードを省略している
let mut guess = String::new();
io::stdin()
.read_line(&guess)
.expect("Failed to read line");
注意。
引用したテキストを展開するには、 '&x'を書くことは' x 'への複数の参照を同時に作ることができるので不変な 'x'に非常に便利です。 'x 'が変更可能なときに'&x'が自動的に '&mut x'を意味するならば、単一のスコープ内で' x'への参照を複数作成することはできません。 – user4815162342