这不是在改变一个不可变的变量吗?

问题描述

我怎么被允许这样做?

fn procedure(param: f64) {
   println!("{}",param + 9);

但是不允许在没有在参数上声明可变的情况下这样做?

fn procedure(mut param: f64) {
param += 9.;
println!("{}",param);

是不是因为在第二个函数中我直接作用于变量本身?

我正在尝试在 Rust 中学习所有权,但我对什么是“变异”感到困惑。对在打印宏中填充花括号的变量执行操作是否有不同的规则? 在我的主要功能中:

procedure(param_in_main);
println!("printing {} in main",param_in_main);

这两个函数将给出相同的结果而不改变传递的变量。我作为指南关注的视频强调了不改变 main 中传递的变量的可变性。但它并没有改变它在第一个程序中的开始。我想我只是误解了所说的内容,但在这种情况下,任何有关内存/副本的反馈都会很棒。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)