(3.1)变量和可变性
1.变量
变量用“let”声明
let hao =1; //不可变变量
let mut hao =1; //可变变量
2.常量
常量用“const”声明,且常量名称都用大写字母,运行时必须指定类型(rust默认i32)
例如:const THREE_HOURS_IN_SECONDS: u32 = 60 * 60 * 3; //32位无符号数字型常量
3.遮蔽:
例如:
let x = 5;
let x = x+1;
(我的理解是,不可变变量x可以通过自己变,不能从外部变,即x指向的地址中的内容可以变,但不能从外部操作改变,和上节的理解也差不多;而常量是锁定,怎样都不会变)
4.let mut(可变变量)与let(不可变变量)的区别
可变变量:可通过外部变(即绑定一个新的地址),值类型不可变,(即它可以使用地址内内容,但不能改变地址内的内容。)
不可变变量:不能通过外部变(只能通过指定地址的内容的改变而变化),值类型可变(地址内什么类型都可以存储,某种意义上,它还是没变,但表现形式变了)
即:
let mut x = 1;
let mut x = x+1;
//x代表的是值本身,操作对象是个数字,所以值类型不可变
let x = 1;
let x = x+1;
//x代表的是存储1的地址,操作对象是地址内的内容,所以值类型可变
(以上是我自己的理解,如有不对请指正,如果以后发现什么问题,也会回来修改的)
5.spaces.len():对字符串型的空格计