为什么铁 rust 中的不变性是强制性的,除非你指定mut
?这是一个安全的设计 Select ,你认为它应该是自然的其他语言吗?
我可能应该澄清一下,我还是Rust的新手.那么,这是一个与语言中的另一个特性相关的设计 Select 吗?
为什么铁 rust 中的不变性是强制性的,除非你指定mut
?这是一个安全的设计 Select ,你认为它应该是自然的其他语言吗?
我可能应该澄清一下,我还是Rust的新手.那么,这是一个与语言中的另一个特性相关的设计 Select 吗?
事实上,这Rust-Book名学生就是针对这个话题的.
绑定在默认情况下是不可变的并不是唯一的原因,但我们可以通过Rust的主要关注点之一来考虑它:安全性.如果你忘记说
mut
,编译器会捕捉到它,并让你知道你已经变异了一些你可能不打算变异的东西.如果绑定在默认情况下是可变的,编译器将无法告诉您这一点.如果你想要Mutations ,那么解决方法很简单:加mut
.在可能的情况下,还有其他一些很好的理由可以避免可变状态,但它们不在本指南的范围之内.一般来说,你通常可以避免显式Mutations ,因此在 rust 病中更可取.也就是说,有时候,Mutations 是你所需要的,所以它不是多余的.
基本上,这是C++的信条,所有你不想修改的东西都应该是常量,只是通过颠倒规则来正确地完成.Also see this Stackoverflow article about C++.