临时可变性
说明
有的时候我们需要准备和处理一些数据,当处理完之后就只会读取而不修改。这种情况可以变量重绑定将其改为不可变的。
也可以在代码块里将处理过程和重定义写在一起。
示例
要求向量在使用前必须排序。
用代码块:
let data = {let mut data = get_vec();data.sort();data};// Here `data` is immutable.
用变量重绑定:
let mut data = get_vec();data.sort();let data = data;// Here `data` is immutable.
优点
编译器可以确保你之后不会意外修改数据。
缺点
多增加了一些本不必要的代码,代码结构更复杂。
