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.