rust - 为什么 Rust 编译器没有阻止我使用智能指针 RefCell 改变 const 数据类型?
问题描述
我很惊讶地看到智能指针 RefCell 可以改变任何类型的数据,因为我希望甚至可以改变 const。为什么不能通过智能指针改变 const 数据?如果我认为 const 永远无法更改,那么为什么尝试修改 const 数据成功执行?
const NAME : RefCell<&str> = RefCell::new("XYZ");
println!("The const NAME is: {}",*NAME.borrow_mut());
*NAME.borrow_mut() = "abc";
println!("The mutated NAME is: {}",*NAME.borrow());
我完全想知道为什么即使编译器成功执行了代码也没有修改 const 数据。我希望编译器会阻止我进行修改,但实际上并没有?这是输出,
The name is: XYZ
The mutated name is: XYZ
解决方案
推荐阅读
- python - 如何处理非常大的浮点数
- python - How to create a unstacked bar plot with dates in X axis?
- python - Python:强制执行抽象方法
- c# - Validating a three field date for an Xamarin application that targets an Android device
- jquery - On click of the button shift the sidebar to inside from screen
- ruby - 我可以将减号 (-) 或加号 (+) 作为参数传递给方法并在方法中使用它们吗?
- c# - Style @Html.DisplayFor text with color in Razor view
- java - Weblogic 10.3.6 and spring-web 4.0.3 issue
- c# - How can i update the datas in Content node in umbraco using C#?
- ios - ReactiveKit:观察一组信号,当它们都完成时做一些事情