我看到了这个代码in the wild:
fields.sort_by_key(|&(_, ref field)| field.tags().into_iter().min().unwrap());
let fields = fields;
let fields = fields;
号线是干什么的?为什么会在那里?
我看到了这个代码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
一起使用,后者进行适当排序,并要求目标是可变的.作者 Select 在这里明确地防止进一步的可变性.
将可变绑定"降级"为不可变绑定在Rust 中非常常见.
另一种常见的方法是使用块表达式:
let fields = {
let mut fields = …;
fields.sort_by_key(…);
fields
};