mut可变性
rust学习的第一个与其他语言不同点便是变量初始化后的使用。
let a = 1;
println!("a:{}",a);
a = 2;
println!("a 2:{}",a);
上段代码编译报错“cannot assign twice to immutable variable”。说明rust简单初始化变量是不具有可变性,不可修改只可读。
正确运行代码:
let mut a = 1;
println!("a:{}",a);
a = 2;
println!("a 2:{}",a);
需要修改的变量是需要标记mut关键字说明其是可变的。
函数传值修改
rust 闭包格式
|arg:Type| -> ( ) { express }
在函数中修改外部值需要在函数定义是声明可变与引用,传值同时赋予引用与可变标识。
fn let_a(){
let mut a = 1;
println!("a:{}",a);
let mut small_scope = |b:&mut isize|{
*b = 2;
println!("a 2:{}",b);
};
small_scope(&mut a);
println!("a 3:{}",a);
}
这里类似于一些含有指针语言的使用方式。在rust中叫做借用,因为rust中值的所有权是唯一的,不可以在同一使用范围有多个变量具有修改某个值得权限。