Temporary mutability
Thường chúng ta sẽ cần phải prepare hoặc process dữ liệu, nhưng sau đó chúng ta không cần tính mutable nữa, để tránh lỗi phát sinh ngoài ý muốn.
Temporary mutability giúp chúng ta tạo một biến mutable trong một phạm vi nhất định, sau đó biến đó sẽ trở thành immutable.
Nested block:
#![allow(unused)]
fn main() {
let data = {
let mut data = get_vec();
data.sort();
data
};
// Here `data` is immutable.
}
Variable rebinding:
#![allow(unused)]
fn main() {
let mut data = get_vec();
data.sort();
let data = data;
// Here `data` is immutable.
}
Ưu điểm
Giúp tránh side effect. Compiler sẽ báo lỗi nếu chúng ta vô tình thay đổi giá trị của biến immutable.