4 ms·
Indeed! I somewhat over-use this in Rust to initialize an immutable variable with mutating code. let var: Vec<u32>; // this one is immutable, wi
by gnull 6y ago
Indeed! I somewhat over-use this in Rust to initialize an immutable variable with mutating code.
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
}
- steveklabnik 6y agoThis is a bit simpler as: 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.
- zerd 6y agoYou can also initialize it to an expression, e.g. let var = { let mut var_ = Vec::new(); var_.push(1u32); var_ };
- wizzwizz4 6y agoCouldn't you just write: let var: Vec<u32> = { let mut var_; … var_ }; Or, better still: let mut var: Vec<u32>; … let var = var;