概述
rust使用关键字"let"来声明和定义变量
- let 变量名=值;//不指定变量类型,编译器自动推导变量类型;
- let 变量名:数据类型=值;//指定变量类型
实例代码:
fn main(){
let student = "小明"; // string 字符串类型
let number = 366; // int 类型
let isstudy = false; // boolean 类型
println!("student is:{}", student);
println!("number is:{}", number);
println!("isstudy is :{}", isstudy);
}
运行结果:
student is:小明
number is:366
isstudy is :false
变量命名规范
- 变量名的定义与C语言一样,只能使用字母,数字,下划线;
- 变量名必须以字母和下划线开始,不能以数字开始;
- 变量名大小写敏感;
可变变量
Rust 语言为了高并发安全而做的设计:
下边方式编译器会报错,由于let 声明变量后,变量的值不允许改变
let a = 1;
a = 2;
如果想声明和定义变量后,想改变变量的值,需要使用mut(mutable)关键字,如:
let mut a = 1;
a = 2;
这样编译器就不会报错了;
在语言层面尽量少的让变量的值可以改变。所以 a 的值不可变。但这不意味着 a 不是"变量"(英文中的 variable),官方文档称 a 这种变量为"不可变变量"。
变量重新绑定(shadowing重影)
下边的方式可以将变量进行重新绑定,这个在rust中是允许的(如果在C中就变成变量重定义了)
注:重影与可变变量的重新赋值不是一个概念
let a = 1;
let a = 2;
实例:
fn main(){
let a = 1;
let a = a + 1;
let a = a + 2;
println!("a is :{}", a);
}
运行结果:
a is :4