I agree, but I think back then I didn't know this trick.
I also abuse blocks in Rust, but it's more in order to placate the borrow checker...
I also abuse blocks in Rust, but it's more in order to placate the borrow checker...
let var: Vec<u32>; // this one is immutable, will be initialized later
{
let mut var_; // mutable
… // initialize var_ with some mutating code
var = var_; // now move var_ to var, initializing the latter
} let var = {
let mut var = ...
var
};
that is, you can assign the result of the block directly. That way you don't need two variables with the _ name as the second. let var: Vec<u32> = {
let mut var_;
…
var_
};
Or, better still: let mut var: Vec<u32>;
…
let var = var; let var = {
let mut var_ = Vec::new();
var_.push(1u32);
var_
};