patternrustCritical
What does 'let x = x' do in Rust?
Viewed 0 times
doeswhatletrust
Problem
I saw this code in the wild:
What does the
fields.sort_by_key(|&(_, ref field)| field.tags().into_iter().min().unwrap());
let fields = fields;What does the
let fields = fields; line do? Why is it there?Solution
It makes
"Downgrading" a mutable binding to immutable is quite common in Rust.
Another common way to do this is to use a block expression:
fields immutable again.fields was previously defined as mutable (let mut fields = …;), to be used with sort_by_key which sorts in-place and requires the target to be mutable. The author has chosen here to explicitly prevent further mutability."Downgrading" a mutable binding to immutable is quite common in Rust.
Another common way to do this is to use a block expression:
let fields = {
let mut fields = …;
fields.sort_by_key(…);
fields
};Code Snippets
let fields = {
let mut fields = …;
fields.sort_by_key(…);
fields
};Context
Stack Overflow Q#54595345, score: 179
Revisions (0)
No revisions yet.