met*_*man 10 immutability rust
为什么在Rust中强制使用不变性,除非你指定mut?这是安全性的设计选择吗,您是否认为它在其他语言中应该如何自然?
我应该澄清一下,我还是Rust的新手.那么这是一种与该语言中的另一个功能相关的设计选择吗?
oli*_*obk 15
该防锈书实际上解决了这个问题.
默认情况下绑定是不可变的没有单一原因,但我们可以通过Rust的一个主要关注点来考虑它:安全性.如果你忘了说
mut,编译器会捕获它,并让你知道你已经改变了一些你可能没想要改变的东西.如果默认情况下绑定是可变的,编译器将无法告诉您这一点.如果你确实打算突变,那么解决方案相当简单:添加mut.在可能的情况下,还有其他充分的理由可以避免可变状态,但它们超出了本指南的范围.通常,您通常可以避免显式变异,因此在Rust中更可取.也就是说,有时候,突变就是你所需要的,所以它不是禁止的.
基本上它是C++ - Mantra,你不想修改的所有内容都应该是const,只需通过颠倒规则来正确完成.另请参阅有关C++的Stackoverflow文章.
| 归档时间: |
|
| 查看次数: |
2038 次 |
| 最近记录: |