let mut foo =point{x:1,y:2};
let mut ref_foo_2 =&mut foo;
//let ref_foo_2 =&mut foo;
ref_foo_2.y=100;
println!("{:?}",ref_foo_2);
注释掉的那一行去掉了 mut 但是结果完全不影响 真是觉得rust语法混乱
1
共 3 条评论, 1 页
let mut foo =point{x:1,y:2};
let mut ref_foo_2 =&mut foo;
//let ref_foo_2 =&mut foo;
ref_foo_2.y=100;
println!("{:?}",ref_foo_2);
注释掉的那一行去掉了 mut 但是结果完全不影响 真是觉得rust语法混乱
评论区
写评论完全懂了,感谢大佬的悉心指点。多谢了
--
👇
Wuyan: ```rust // 第一个mut 表示ref_foo_2本身可变(如后面可以给 ref_f00_2 赋值:ref_f00_2 = &mut foo2), // 第二个 &mut 表示 ref_foo_2 指向数据的内部可变(如:ref_f00_2.x=2;是合法的) let mut ref_foo_2 =&mut foo;
可以对比c++的const来学习,比如const int * const p