就像是:
let x = 5;
if x.isMut {
// do stuff
} else {
// do other stuff
}
Run Code Online (Sandbox Code Playgroud)
您可以尝试使错误处理超载,但这是一种反模式。
您在标题中提到“字段”。字段不具有“可变性”属性。您的代码建议您实际上要询问变量绑定的可变性。
无法在运行时找出变量绑定是否可变。变量绑定的此属性在编译时始终是已知的,并且仅在编译时才相关。因此,在运行时检查此对象实际上没有意义,因为检查将始终为“要么” true或“始终” false。
除了“绑定可变性”之外,还有“参考可变性”,基本上是&T和之间的区别&mut T。您可以通过使用一些特征欺骗来在运行时进行检查。但是,在运行时进行检查也没有意义,因为它不允许您对这些信息做任何有趣的事情。
最后,通过内部可变性容器(例如RefCell和)进行运行时借用Mutex。这些确实有专用的方法来检查可以可变借用的东西。
这些来自动态语言的内容对于您来说似乎真的很奇怪,这很正常。只要继续学习Rust(例如通过阅读本书),您很快就会知道为什么在Rust的背景下您最初提出的问题确实看起来很奇怪。
| 归档时间: |
|
| 查看次数: |
373 次 |
| 最近记录: |