回答:
それはfields
再び不変になります。
fields
以前は変更可能(let mut fields = …;
)として定義されてsort_by_key
いました。これは、インプレースでソートし、ターゲットを変更可能にする必要がある場合に使用されます。著者は、これ以上の変更を明示的に防ぐためにここで選択しました。
ミュータブルバインディングをイミュータブルに「ダウングレード」することは、Rustではかなり一般的です。
これを行うもう1つの一般的な方法は、ブロック式を使用することです。
let fields = {
let mut fields = …;
fields.sort_by_key(…);
fields
};