最近尝试了vector的last_mut函数,它的例子是这样的:
let x = &mut [0, 1, 2];
if let Some(last) = x.last_mut() {
*last = 10;
}
我平时一般会写成:
let mut x = [0, 1, 2];
if let Some(last) = x.last_mut() {
*last = 10;
}
这个看起来得到的结果是一样的。
我非常好奇的是,持有一个可变数数组指针的不可变变量,这么写有什么必要性吗?或者换句话说,在什么场景下,这种写法相比第二种更有优越性?
ps: vec![0,1,2] 与 [0,1,2]有啥区别呢?
1
共 3 条评论, 1 页
评论区
写评论对哦,是我脑抽了。一直都是直接传&mut x进函数,一时没反应过来。
--
👇
Neutron3529: 持有一个可变数数组指针的不可变变量
这个操作多用于函数,如果你传进去一个mut x,函数算完x就没了
但如果你传&mut x,函数执行完x仍会保留
后者就是
可变数数组指针的不可变变量
的用法持有一个可变数数组指针的不可变变量
这个操作多用于函数,如果你传进去一个mut x,函数算完x就没了
但如果你传&mut x,函数执行完x仍会保留
后者就是
可变数数组指针的不可变变量
的用法试试去掉注释