Earlier quoted context omitted.
That's not necessarily abuse; it may be quite appropriate to explicitly limit something's lifetime.
Indeed! I somewhat over-use this in Rust to initialize an immutable variable with mutating code. let var: Vec ; // 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.