我看到这段代码 in the wild :
fields.sort_by_key(|&(_, ref field)| field.tags().into_iter().min().unwrap());
let fields = fields;
let fields = fields;
行是做什么的?为什么会在那里?
最佳答案
它再次使 fields
不可变。
fields
之前被定义为可变的 (let mut fields = …;
),与 sort_by_key
一起使用要求目标是可变的。作者在这里选择明确防止进一步的可变性。
将可变绑定(bind)“降级”为不可变绑定(bind)在 Rust 中很常见。
另一种常用的方法是使用 block 表达式:
let fields = {
let mut fields = …;
fields.sort_by_key(…);
fields
};
关于rust - 'let x = x' 在 Rust 中有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54912384/